修改WordPress文章默认排序

2015-08-23

是不是觉得WordPress默认按时间排序文章的方式很不方便。虽然有些主题提供了置顶功能,但依然不能满足完全自定义文章排序的需求。本文将介绍,如何通过修改主题,来实现对文章的自定义排序。

不要看到修改源文件就退缩,其实整个过程很简单,添加几行代码就可以了。

首先打开你wordpress主题的index.php文件。找到类似下面的这段话:

while(have_posts()) {

这个就是用来显示你博客文章的循环语句。把它修改成下面的样子:
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args=array(
'orderby' => 基于排序的对象,
'paged' => $paged,
'order' => 'DESC'
);
query_posts($args);
while(have_posts()) {

其中,“基于排序的对象”可以是文章的任何属性,比方:”id”, “title”, “date”。

通过这种方法,你可以修改文章排序的依据。不过依旧不能完全自定义文章排序。要完全自定义文章排序,我们要用到wordpress的另一个功能:meta data。

编辑文章时,你可能在文章编辑Widget下面看到像下面这样Widget:

如果没有,点击你编辑界面右上角的“显示选项”,选中“自定义栏目”。

然后,为每一篇文章添加一个meta data,key可以自己定义,比方post_order,meta的值则是你文章排序的依据。

类似的,在index.php中替换如下代码,只是把orderby改成了你的meta_key,同时添加一项meta_key。如下:
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args=array(
'meta_key' => 'post_order',
'orderby' => 'meta_value',
'paged' => $paged,
'order' => 'DESC'
);
query_posts($args);
while (have_posts()) {

这样,你就可以依据自己定义的meta_data对文章进行排序了。

最后要说的是,这样方法不仅试用于首页,也适用于标签页、分类页等存档页面。修改的放法一样。读者可以自己尝试一下。

文章转载自:http://tutorials.hostucan.cn/article-5158

发表评论

邮箱地址不会被公开。 必填项已用*标注