wordpress居然分类不带排序功能,搜索了下解决办法,大部分都是需要插件,麻烦.我看,还是自己动手,丰衣足食,想咋的就咋地.

下面说一下研究了一天的结果,以供参考.本方法的思路:往分类的表里加入排序字段,然后在页面上加入相关的支持.

1.首先得往wordpress分类表里加入排序字段displayorder(类型为int).

经研究,此表为wp_terms.加完后,就给你需要排序的分类依次排序,结果如下:


2.打开wp-includes目录下taxonomy.php文件,由于wordpress的搜索逻辑默认没有对新加入的字段支持,得进行修改.

找到如下位置

  1. else if ( 'name' == $orderby )
  2. $orderby = 't.name';

大概在615行,在这个位置下加入如下代码,以获得其对displayorder排序字段的支持

  1. else if ( 'displayorder' == $orderby )
  2. $orderby = 't.displayorder';

3.在wp-content/themes目录下,找到你所用的模板目录,然后编辑sidebar.php页.这一步主要是往模板页里的分类函数加入排序方式的参数.
找到wp_list_categories函数,我的如下:

  1. <?php wp_list_categories('show_count=1&title_li=<h6>categories</h6>'); ?>

修改为

  1. <?php wp_list_categories('orderby=displayorder&show_count=1&title_li=<h6>categories</h6>'); ?>

done.

Random Posts

Quote:http://www.salontino.net/index.php/archives/154

10 Responses

  1. 太好了,内置的排序策略不是很好

    [ Quote ]

    WoRay Says @ 08-10-14 3:59 pm
  2. WoRay on October 14, 2008 at 3:59 pm said:

    太好了,内置的排序策略不是很好

    恩恩,DIY还是很方便的.

    [ Quote ]
    salontino Says @ 08-10-14 10:14 pm
  3. 请问怎么添加displayorder 字段?请回我邮箱,谢,

    在phpmyadmin里面找到 wp_terms 这张表,加了 displayorder这个字段,但是下面那些 参数怎么设?请教

    谢谢!

    [ Quote ]

    kvsingle Says @ 08-12-12 10:08 am
  4. kvsingle on December 12, 2008 at 10:08 am said:

    请问怎么添加displayorder 字段?请回我邮箱,谢,

    在phpmyadmin里面找到 wp_terms 这张表,加了 displayorder这个字段,但是下面那些 参数怎么设?请教

    谢谢!

    Datetype: int
    Not null

    [ Quote ]
    salontino Says @ 08-12-24 3:52 pm
  5. displayorder 字段加在 wp_term_taxonomy 表里更好一些

    [ Quote ]

    voidman Says @ 09-03-7 9:04 am
  6. 同意你的看法,wp_term_taxonomy表是分类的相关功能表.

    [ Quote ]
    salontino Says @ 09-03-12 3:18 am
  7. 请问:我按您的方法做完了,怎么更改排序,在后台分类目录那还是没有改排序的设置啊,谢谢。

    [ Quote ]

    Dreamray Says @ 10-06-19 5:07 pm

Trackbacks & Pingbacks

Like to say what is here