如何在WordPress中用PHP条件语句按分类名称统计文章数量?
按分类名称统计文章数量的实现方案
可以用if条件语句按分类名称统计文章数量,但你当前的代码存在问题——get_the_category()返回的是分类对象数组,不是字符串,直接和分类名称"Uncategorized"比较是不会生效的。
修正后的代码示例(基础版)
<?php $c = 0; if ( have_posts() ) : while ( have_posts() ) : the_post(); // 获取当前文章的所有分类对象数组 $categories = get_the_category(); // 遍历分类,检查是否包含目标分类 foreach ( $categories as $category ) { if ( $category->name === "Uncategorized" ) { $c++; // 避免同一文章多分类符合时重复计数,直接跳出循环 break; } } endwhile; endif; echo "Count = $c"; ?>
更简洁的优化版
可以用WordPress内置的has_category()函数直接判断,代码更简洁高效:
<?php $c = 0; if ( have_posts() ) : while ( have_posts() ) : the_post(); // 直接检查当前文章是否属于目标分类 if ( has_category( "Uncategorized" ) ) { $c++; } endwhile; endif; echo "Count = $c"; ?>
核心说明
get_the_category()返回的是WP_Term对象数组,哪怕文章只有一个分类,也会以数组形式返回,必须遍历后通过$category->name获取分类名称has_category()支持传入分类名称、ID或别名(slug),能直接判断文章是否属于目标分类,省去手动遍历的步骤
内容的提问来源于stack exchange,提问作者Charles Stangor
相关产品推荐
相关产品推荐

