不用插件Wordpress自定义链接排序和显示条数的方法

已为老胡 2009-05-13 PM 1701℃ 2条

    Wordpress对链接的管理比较弱,如:不能设置排序方式,不能设定链接显示的条数 等

    wordpress 现在已经到了 2.7 版了,以前的管理友情链接的插件,大多数不知好不好用了,而且,如果是用 wordpress自带的widget 显示链接的话,插件也不太灵,而且毕竟消耗资源,所谓“自己动手,丰衣足食“,下面我们自己动手来修改 wordpress 的 链接显示的排序方式,和首页链接显示的个数, GO!

本文是以 wordpress2.7为例, 对 wordpress 2.1+ 的版本都适用
 

从wordpress 2.1开始,WP提供的展示链接的函数改为 wp_list_bookmarks ,之前的版本,用 wp_getlinks ,我们这里讲的 2.1+ 版本的 WP。

wp_list_bookmarks 的使用方式,请参见 wp_codebox ,我这里只列出本文用到的核心的几个参数

orderby: 显示链接的排序方式,默认是 name,要自定义排序,就用这个参数

取值范围:

 
'id' - 链接的后台ID编号
'url' - 链接的URL地址
'name' - 链接的网站名称
'target' - 链接的打开方式
'description' - 链接的描述
'owner' - 链接的创建者
'rating' - 链接的分级
'updated' - 链接的发布时间
'rel' - 链接与本站的关系 (XFN).
'notes' - 链接的备注
'rss'   - 链接的feed地址
'length' - 链接的网站名称的字符串长度
'rand' - 随机排序
 

limit:  显示的链接个数,默认是 -1(全部),要限制显示条数,就用这个参数

order: 排序的升降, 默认是 升序 ASC, 如果降序,用 DESC
--------------------------------------------------------------------------------
有了上面的储备知识, 我们就可以开始工作了 --》

 修改wordpress自带的 widgets 中的链接:

打开 wordpress 下的 wp-includes 目录,找到 widgets.php ,wordpress的 widgets的显示工作,是由该文件负责的,先备份一个该文件, 然后打开该文件, 定位到 function wp_widget_links,会看到代码如下:

上面的内容中, 根本没有涉及 orderby, order 和 limit 的东西, 所以, 就全部用的是 WP 的默认值

下面,我们实现自定义的需求,就是修改上面的内容, 加入自己的自定义内容,修改后的代码如下:

<?php
/**
 * Display links widget.
 *
 * @since 2.2.0
 *
 * @param array $args Widget arguments.
 */
function wp_widget_links($args) {
 extract($args, EXTR_SKIP);

 $before_widget = preg_replace('/id="[^"]*"/','id="%id"', $before_widget);
 wp_list_bookmarks(apply_filters('widget_links_args', array(
  'title_before' => $before_title, 'title_after' => $after_title,
  'category_before' => $before_widget, 'category_after' => $after_widget,
  'show_images' => true, 'class' => 'linkcat widget'
        ,'limit' => 15 /*显示多少条*/
        ,'orderby' => 'rating'      /*排序字段*/
 )));
    echo '<span style="float: right; padding-right: 5px"><a href="http://www.zu14.cn/links/">更多链接&raquo;</a></span>';
}
?>
大家可以看到,上面的修改部分,只是增加了两个参数的值, limit 和 orderby 这就实现了显示条数的限制,和自定义排序的功能,同时增加了一个 更多链接 的链接,以便显示全部,前提是你已发布了链接页面

 修改主题中的链接显示模式

主题中的链接管理, 通常是在主题中包含的 links.php 之类的名字(不同主题,可能有不同),找到这个文件,定位到里面的 wp_list_bookmarks, 仿照上面给这个函数增加参数即可,我就不举例了

这里提供大家我修改后的 widgets.php 下载, wordpress 2.7版的
大家下载后, 修改里面的 ”更多链接“ 的URL地址为你自己的页面地址, 然后上传到 wp-includes 目录下即可,请先备份原来的。
                                                    widgets.php

标签: none

非特殊说明,本博所有文章均为博主原创。

评论啦~



已有 2 条评论


  1. 爱新奇
    爱新奇

    用了评分的排序

    回复 2010-12-13 11:09
  2. 亿品元素
    亿品元素

    学习,呵呵 :满足:

    回复 2010-11-22 12:58