好这很容易解释。。。
问题解释
您的代码不算数-它检索与给定查询匹配的帖子(您查询的帖子属于ID为9的类别)。如果您没有提供
posts_per_page
param,则使用默认值(在设置中设置的值)。另一方面,如果设置
posts_per_page
到
-1
, 然后,您将获得与给定查询匹配的所有帖子。但这样做是一个非常糟糕的主意——如果有数千篇帖子,那么您将从DB中检索所有帖子,只是为了统计它们。
解决方法之一是检查found_posts
而不是post_count
. 第一个是“找到的与当前查询参数匹配的帖子总数”,第二个是“显示的帖子数量”。
$args = array(
\'post_type\' => \'post\',
\'cat\' => 9,
);
$count_query = new WP_Query( $args );
$count = $count_query->found_posts;
if ( $count >= 3) {
// do something
}
更好的解决方案,但。。。有更有效的方法来统计给定类别中的帖子数量。。。
$category = get_category( 9 ); // <- change the ID of category
if ( $category->category_count >= 3 ) {
// do something
}
当然,您还应该检查给定的类别是否存在,等等。