wordpress网络栏目自定义排序
今天晚上解决了一个关于wordpress网络栏目自定义排序的问题,这个问题遗留了好久了,以前总感觉2哥博客的栏目很乱,经过自定义栏目排序后感觉好多了,感谢网友提供的资料!
方法一:插件(这里不做介绍)
方法二:修改代码的方式!
第一步:通过phpmyadmin进入mysql,找到网络里面所使用的数据库,修改数据库里面的表wp_terms,增加排序字段order_(类型int)。按需要的顺序修改order_字段的值。
第二步:修改wp-includes目录下taxonomy.php文件。
首先找到如下代码:
if ( 'count' == $_orderby ) $orderby = 'tt.count'; else if ( 'name' == $_orderby ) $orderby = 't.name'; else if ( 'slug' == $_orderby ) $orderby = 't.slug'; else if ( 'term_group' == $_orderby ) $orderby = 't.term_group'; else if ( 'none' == $_orderby ) $orderby = ''; elseif ( empty($_orderby) || 'id' == $_orderby ) $orderby = 't.term_id'; else $orderby = 't.name'; $orderby = apply_filters( 'get_terms_orderby', $orderby, $args ); if ( !empty($orderby) ) $orderby = "ORDER BY $orderby"; else $order = ''; $order = strtoupper( $order );
然后修改为:(就是在第一个if后面增加一个else if )
if ( 'count' == $_orderby ) $orderby = 'tt.count'; else if ( 'order' == $orderby ) $orderby = 't.order_'; else if ( 'name' == $_orderby ) $orderby = 't.name'; else if ( 'slug' == $_orderby ) $orderby = 't.slug'; else if ( 'term_group' == $_orderby ) $orderby = 't.term_group'; else if ( 'none' == $_orderby ) $orderby = ''; elseif ( empty($_orderby) || 'id' == $_orderby ) $orderby = 't.term_id'; else $orderby = 't.name'; $orderby = apply_filters( 'get_terms_orderby', $orderby, $args ); if ( !empty($orderby) ) $orderby = "ORDER BY $orderby"; else $order = ''; $order = strtoupper( $order );
第三步:最后,是修改主题中目录列表的代码,如sidebar.php
查询到:
<?php wp_list_cats(‘sort_column=name&optioncount=0&depth=1′); ?>
修改为 :
<?php wp_list_cats(‘sort_column=order&optioncount=0&depth=1′); ?>
以上都是wordpress网站实现分类目录排序的教程,大家按照此wordpress教程一步步下来可以完工了。
但是因为本人的博客所用的模板在sidebar.php里面找不到相关函数所以通过如下方式进行修改:
wordpress网站后台外观—编辑—顶部文件 找到如下代码:
<?php wp_list_categories('orderby=name&show_count=0&title_li=&depth=2'); ?>
将其中的name修改为order并增加按照正序排列即可。
修改后代码为:
<?php wp_list_categories('orderby=order&order=ASC&show_count=0&title_li=&depth=2'); ?>
最后保存完工。
最后在给大家分享一篇worpdress文章分类(wp_list_categories)函数