手动修改WordPress文章默认排列顺序
May012014
我们常见的WordPress站点文章排序,通常情况下是按发布时间的升序或降序方式排列,这种排序方式几乎可以满足大多数站点的需求了,虽然有些主题提供了置顶功能,但是有些另类的站点可能会有一些另类的需求:我想手动修改文章的排列方式,可以随意更改文章的排列位置。其实WordPress的query_posts就可以轻松解决这个问题,不过你得自己动手改一些代码,不要看到修改源文件就退缩,其实整个过程很简单,添加几行代码就可以了。
1、首先打开你wordpress主题的index.php文件,搜索代码:
1 | while (have_posts()) |
这个就是用来显示你博客文章的循环语句。把它修改成下面的样子:
1 2 3 4 5 6 7 8 | $args = array( 'meta_key' => 'post_order', 'orderby' => 'meta_value_num', // 须 WordPress 2.8 及以上版本 'order' => DESC ); $arms = array_merge($args, $wp_query->query); query_posts($arms); while (have_posts()) |
接着搜索:
1 | endwhile; |
将其改成:
1 | endwhile;wp_reset_query(); |
2、给之前发表的所有文章添加自定义字段(或者称作自定义栏目,在文章编辑页底部可以看到),名称为 post_order ,值填数字。这样在首页,文章的排列顺序就按照post_order字段的值,从大到小排列了。通过修改post_order字段的值,可以达到自定义文章排列顺序的目的。
3、需要注意的是,通过以上修改后,你必须给所有文章添加自定义字段post_order,否则没有添加post_order字段的文章将无法在首页显示。这也许就是手动排序需要付出的代价吧,要不然何谓手动?
4、如果你同时想手动修改标签页、分类页等存档页面的文章排列顺序,同样可以按照第一步介绍的方法来操作,修改主题目录下的archive.php等。
本文固定链接: http://www.ouchaoman.com/2014/05/01/wordpress-customize-posts-order/ | 欧阳博客