我想现在我明白你想做什么了。使用运行自定义查询时WP_Query
并将限制设置为每页仅获取5篇帖子,查询仅检索5篇帖子,该查询仅容纳5篇帖子,BUT 为了分页,WP_Query
仍然运行整个数据库,并统计与查询条件匹配的所有帖子。
当你看到$found_posts
和$max_num_pages
查询的属性。让我们举一个例子:
您有20篇属于默认帖子类型的帖子post
. 你only 需要最新的5个职位没有分页。您的查询如下所示
$q = new WP_Query( \'posts_per_page=5\' );
var_dump( $q->posts )
将按预期为您提供最新的5篇帖子echo $q->found_posts
会给你20
echo $q->max_num_pages
会给你4
这项额外工作对只有几篇帖子的站点的影响很小,但如果您运行的站点有数百或数千篇帖子,那么这项工作的成本可能会很高。如果你只需要5篇最新的帖子,这是浪费资源
有一个名为no_found_rows
它使用布尔值,您可以在查询找到所需的5篇文章后使用这些值进行查询。这将强制WP_Query
在检索到查询的帖子数量后,不要再查找符合条件的帖子。此参数已内置到get_posts
, 这就是为什么get_posts
比…快一点WP_Query
虽然get_posts
使用WP_Query
结论总之,如果您不打算在查询中使用分页,那么最好\'no_found_rows=true\'
在您的查询中加快速度并节省浪费资源。