WordPress函数query_posts函数在WordPress主题中是用于控制哪些文章可以出现在主循环中,可能说主循环很多人都不懂,那么举个例子,首页、存档页的这些文章(包括分页中的)都是在主循环中的。在不使用query_posts函数控制的情况,首页、存档页等都是按照文章的发布时间列出你博客上所有已发布的文章,而如果你想定义哪些文章可以显示,哪些文章不显示,文章按照什么样的方法排序等,那么你就要用到query_posts函数了。

query_posts基本用法

首先介绍一下如何使用query_posts函数。在主题目录下找到存档页面文件,存档页面包括index.php、archive.php等,一般分类页、标签页、日期页和作者页等都是用archive.php。
确定了你要控制哪个页面的文章列表,那么我们就可以开始了,比如你想让首页的文章按评论数排序,那么index.php中的代码基本框架就是这样的:


<?php
 
// query_posts函数
query_posts('orderby=comment_count');
 
// 主循环
if ( have_posts() ) : while ( have_posts() ) : the_post();
..
endwhile; else:
..
endif;
 
// 重置query
wp_reset_query();
 
?>

其实你要做的就是在index.php中查找if (have_posts())或while (have_posts()),在前面添加query_posts函数即可。不过以上方式可能会导致首页无法分页,那你可以将query_posts函数改成这样的行式:


$args = array(
 // query_posts参数,具体参数可以参加官方文档
 'orderby'   => comment_count
 );// 下面这一行代码是必须的,不然不能分页
 $arms = array_merge($args, $wp_query->query);
 query_posts($arms);

下面是一些常见的query_posts函数用法,你可以直接用到你的主题中。