[英]How to limit the number of fetched items by a WP_Query
“ posts_per_page”不限制WP_Query将获取的项目数。 没关系,但是我需要找到一种方法,在获取3个项目后,如何以一定的限制或类似like的属性来破坏WP_Query。 我有很多项目,要获取3个项目,它将获得数据库中所有1000多个项目,这最终使页面变慢。
任何想法如何将查询限制为仅从数据库中获取3个而不是所有项目?
$args = array(
'post_type' => array( 'books' ),
'meta_query' => array(
array(
'key' => 'book_state',
'value' => 'sold'
)
),
'posts_per_page' => 3,
);
$the_query = new WP_Query( $args );
if ( $the_query->have_posts() ) :
$booksNumber = $the_query->found_posts; // returns 1282 instead of 3
...
found_posts
返回与查询参数匹配的帖子总数。
post_count
返回正在显示的帖子总数。 我相信您想做的是:
$booksNumber = $the_query->post_count;
如果那不起作用,我将尝试使用get_posts而不是WP_Query
:
$postslist = get_posts($args);
$booksNumber = count($postslist);
看起来您只在使用一个元查询,因此请尝试使用get_posts 。
通常,我建议使用WP_Query,但我可以看到它如何造成混淆。 如果运行以下代码,您将看到更多与您期望的一样的东西:
$args = array(
'post_type' => 'books',
'meta_key' => 'book_state',
'meta_value' => 'sold',
'posts_per_page' => 3,
);
$posts = get_posts($args);
echo count($posts);
var_dump($posts);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.