You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WordPress中如何获取分类ID?自定义分类判断代码失效求助

问题解决:根据文章分类ID显示不同文本并输出分类ID

原代码存在几个问题导致无法正常运行:

  • 未处理文章无分类的场景,此时$categories为空数组,访问$categories[0]会触发PHP错误
  • 仅取第一个分类,若文章同时属于多个分类(包含ID83但不是第一个),逻辑判断会失效
  • 若代码运行在主循环之外,get_the_category()需要传入文章ID才能正确获取分类

修正方案一:支持多分类判断+输出所有分类ID

如果需要判断文章是否属于目标分类(无论是否为第一个),同时输出所有关联的分类ID,使用以下代码:

// 获取当前文章分类,非主循环环境需传入文章ID:get_the_category(get_the_ID())
$categories = get_the_category();

$category_ids = [];
$is_in_target_cat = false;

// 遍历分类,收集ID并检查是否包含目标分类
if (!empty($categories)) {
    foreach ($categories as $cat) {
        $category_ids[] = $cat->cat_ID;
        if ($cat->cat_ID == 83) {
            $is_in_target_cat = true;
        }
    }
}

// 输出文章关联的分类ID
echo '当前文章分类ID:' . (empty($category_ids) ? '无分类' : implode(', ', $category_ids));

// 根据分类显示对应文本
echo '<br>' . ($is_in_target_cat ? '123' : '1234');

修正方案二:仅取第一个分类+处理无分类场景

如果业务逻辑只需要以第一个分类为准,使用以下代码:

$categories = get_the_category();
$first_cat_id = '';

// 处理无分类情况,避免报错
if (!empty($categories)) {
    $first_cat_id = $categories[0]->cat_ID;
    echo '当前文章第一个分类ID:' . $first_cat_id;
} else {
    echo '当前文章无分类';
}

// 判断分类ID并输出文本
echo '<br>' . ($first_cat_id == 83 ? '123' : '1234');

额外注意事项

  • 确保代码运行在WordPress的主循环内,或手动传入文章ID给get_the_category()函数
  • 若使用自定义分类法,需改用get_the_terms()函数替代get_the_category()

内容的提问来源于stack exchange,提问作者kfir ben shimon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 12:55:20