折腾wordpress的朋友一定都知道wordpress的文章列表页的文章排序默认都是按照文章发布日期从新到旧来排列,而对于某些自定义要求很高的网站是不够的,那么我们可以通过query_posts这个函数来控制wordpress的文章排序。
首先我们要了解你需要修改哪个页面的文章排序,比如说你需要控制首页的文章排序,那么就找到index.php,如果需要修改标签页就找到tag.php,如果需要修改分类页面就找到category.php,而修改归档页面则是找到archive.php。
确认了你所需修改的页面后,我们就可以开始做修改了,比如说你想让首页的文章按评论数量来排序,那么你就应该这样修改,打开index.php找到类似于if (have_posts())这类的wordpress主循环,将其修改成以下代码:
<?php// query_posts函数query_posts('orderby=comment_count'); //以评论最多到最少的排序方式//主循环if ( have_posts() ) : while ( have_posts() ) : the_post();?>
查找
<?php endwhile; ?>
修改成
<?php endwhile; else: ?>
然后查找
<?php endif; ?>
修改成
<?phpendif;// 重置querywp_reset_query()?>
此时首页的文章就已经是按照文章的评论数量来排序的了,但是此时可能会导致首页无法分页,那你可以将query_posts函数改成这样的:
<?php$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;//控制分页$args = array(// 这里以下面的方式添加query_posts参数,具体参数可以参加官方文档'orderby' => comment_count,'paged' => $paged);query_posts($args);//主循环if ( have_posts() ) : while ( have_posts() ) : the_post();?>
至此wordpress就可以完美的按照评论的多少来进行排序了,如果需要其他排序方法可以参考官方文档进行修改。