如何修改WordPress分类文章计数,排除自定义文章类型?
解决分类计数仅统计普通文章的方案
刚好之前处理过类似的需求,其实用WordPress自带的过滤器就能轻松解决这个问题,具体操作如下:
- 步骤1:添加自定义代码
你需要借助wp_term_count_args过滤器修改分类计数的查询逻辑,让它只统计内置的普通文章(post类型)。把下面的代码添加到当前主题的functions.php文件末尾,或者用Code Snippets这类专门管理自定义代码的插件来添加(更推荐后者,避免主题更新导致代码丢失):
add_filter( 'wp_term_count_args', 'exclude_movie_from_category_count', 10, 3 ); function exclude_movie_from_category_count( $args, $taxonomy, $terms ) { // 仅对内置分类法(category)生效 if ( 'category' !== $taxonomy ) { return $args; } // 指定只统计普通文章类型 $args['post_type'] = 'post'; return $args; }
代码说明
- 这个过滤器会拦截WordPress计算分类文章数的请求,我们先判断当前是不是针对内置分类(
category)的计数请求,避免影响其他分类法的统计。 - 然后把查询的
post_type参数设置为post,这样计数时就只会统计普通文章,自动排除你创建的movie自定义文章类型。
- 这个过滤器会拦截WordPress计算分类文章数的请求,我们先判断当前是不是针对内置分类(
验证效果
添加代码后刷新前端页面,分类小工具里的计数就会变成只显示普通文章的数量了——比如你提到的hobby分类,就会显示成hobby (5)而非原来的hobby (8)。
内容的提问来源于stack exchange,提问作者jjycjn
相关产品推荐
相关产品推荐

