有人能解释一下循环中如何使用“$posts”吗?
It isn\'t.
它返回被查询帖子的数组,但它无关紧要,根本不使用:如果删除它,代码的工作原理相同:
global $query_string;
query_posts($query_string.\'&cat=-9\');
if (have_posts()) : while (have_posts()) : the_post();
...
endwhile; endif;
这是因为
query_posts()
推翻
global $wp_query
对象,即循环函数的查询对象
have_posts()
和
the_post()
用于显示帖子。
这就是为什么不应使用该功能的原因:
重写一个广泛使用的全局变量很容易产生副作用,因为您用另一个已运行的查询重写一个已运行的查询,对数据库运行查询两次,所以速度非常慢如果需要从主(全局)查询中单独查询,而不是覆盖主查询,只需使用WP_Query
对象或get_posts
.
如果需要修改主查询,请修改它before 它可以运行,这样您将只运行1个查询而不是2个查询,并且您的代码将更快。要在运行主查询之前编辑它,请使用\'pre_get_posts\'
行动挂钩。