在WordPress中,直接使用 $term->count 获取到的文章数量不包含草稿和回收站的文章,它通常只统计已发布的文章。
🔢 分类项计数的默认行为
WordPress的分类系统(如分类目录和标签)中,每个分类项(Term)的 count 值,通常来源于 wp_term_taxonomy 数据库表中的 count 字段。这个数值的统计有以下特点:
- 默认统计已发布文章:默认情况下,
$term->count只计算状态为 ‘publish’ 的文章。 - 不包含其他状态:诸如 ‘draft’(草稿)、‘pending’(待审)、‘trash’(回收站) 和 ‘private’(私密) 等状态的文章,在默认情况下不会被计入。
🔍 如何统计其他状态的文章
如果你需要统计特定分类项下处于其他状态的文章数量,可以考虑以下方法:
- 使用
WP_Query进行自定义查询
你可以利用WP_Query类,通过设置post_status和tax_query参数,来精确查询特定分类项下处于特定状态的文章列表,然后获取其数量。例如,查询某个分类目录下所有草稿文章:$query = new WP_Query( array( 'post_status' => 'draft', 'tax_query' => array( array( 'taxonomy' => 'category', // 这里替换为你的分类法名称 'field' => 'term_id', 'terms' => $term_id, // 这里替换为你的分类项ID ), ), ) ); $draft_count = $query->found_posts;通过这种方式,你可以灵活地统计包括草稿、待审文章等在内的数量。 - 直接使用
wp_count_posts函数wp_count_posts函数可以用来统计整个网站中不同状态的文章数量,但它无法直接针对某一个特定的分类项进行统计。
简单来说,$term->count 默认只反映已发布文章的数量。如果你的网站内容管理涉及较多草稿或待审核文章,并且你需要将这些状态的文章也纳入统计,那么建议使用 WP_Query 进行自定义查询来获取更符合需求的数量。

