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

WordPress中如何仅获取自定义分类法的子分类?

解决自定义分类法仅获取子分类的问题

问题原因分析

  1. 第一段代码错误:get_categories无需嵌套tax_query,该函数本身支持直接指定分类法相关过滤参数,冗余的tax_query逻辑未正确过滤顶级分类。
  2. 第二段代码错误:变量名不匹配(定义$categories却打印未声明的$countries),触发未定义变量错误;同时get_terms的字符串参数写法在新版WordPress中不推荐,兼容性差。

正确实现代码

方法1:使用get_terms(推荐自定义分类法使用)

$countries = get_terms(array(
    'taxonomy'       => 'locations-category',
    'hide_empty'     => true, // 可选:是否隐藏无内容的分类
    'orderby'        => 'name',
    'order'          => 'ASC',
    'parent__not_in' => array(0) // 排除顶级分类(parent=0),仅返回子分类
));

echo "<pre>";
print_r($countries);
echo "</pre>";

方法2:使用get_categories(本质是get_terms的封装)

$countries = get_categories(array(
    'taxonomy'       => 'locations-category',
    'hide_empty'     => true,
    'orderby'        => 'name',
    'order'          => 'ASC',
    'parent__not_in' => array(0)
));

echo "<pre>";
print_r($countries);
echo "</pre>";

额外说明

  • 如果需要获取某一特定父分类的直接子分类,可直接将parent__not_in替换为parent参数并指定父分类ID,例如'parent' => 123(123为目标父分类ID)。
  • 确保WordPress版本在4.7及以上,parent__not_in参数从该版本开始支持。

内容的提问来源于stack exchange,提问作者sanad mir

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 16:57:26