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

WordPress基于ACF分类法字段查询分类的代码问题排查

代码错误说明

你的写法完全用错了查询参数,核心问题有两个:

  • tax_query的作用是查询关联了指定分类项的文章/自定义post类型,根本不支持用来查询分类项(term)本身。
  • 你给category创建的ACF taxonomy类型字段custom_parent,本质是存储在term meta表里的分类元数据,不是WordPress原生的分类法归属关系,没法通过分类法参数匹配。

ACF的taxonomy类型单选字段,数据库里存的值是所关联分类项的ID,不是slug,不能直接拿slug做匹配条件,查询分类项的元数据要使用meta_query参数。

可直接运行的修正代码
// 先根据slug拿到目标二次归类项的ID,注意第二个参数替换成custom_parent字段绑定的分类法名
// 如果custom_parent关联的是默认分类目录就填'category',关联自定义分类法就填对应分类法标识
$target_term = get_term_by('slug', 'sport-fritid-parent', 'category');
$target_term_id = $target_term ? $target_term->term_id : 0;

$args = array(
    'taxonomy'   => 'category',
    'hide_empty' => false, // 不需要显示无文章的分类可以改成true
    'meta_query' => array(
        array(
            'key'     => 'custom_parent',
            'value'   => $target_term_id,
            'compare' => '='
        )
    )
);
$categories = get_categories($args);
foreach($categories as $cat){
    echo $cat->name;
}
补充说明

如果你给custom_parent字段开了多选功能,ACF会把多选的ID存为序列化数组,这时候需要把meta_query里的compare参数改成LIKE,value值改成'"' . $target_term_id . '"'做模糊匹配即可。

内容的提问来源于stack exchange,提问作者Fernando Redondo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 06:03:12