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

如何在页面显示分类ACF字段?调用get_field返回NULL问题求助

解决ACF分类术语字段返回NULL的问题

我来帮你一步步排查这个问题,咱们从最基础的检查开始:

1. 先确认ACF字段组的核心设置

  • 检查字段组规则:你设置的是「分类法术语:等于:分类」,这里要确认是不是选对了目标分类术语;如果是想让整个分类法下的所有术语都能使用这个字段,规则应该设置为「分类法:等于:[你的分类法,比如默认的category]」,而不是单个术语。
  • 核对字段名:确保ACF后台的字段名是cat_header,和你代码里的拼写完全一致(ACF字段名区分大小写,错一个字符都会导致返回NULL)。
  • 确认字段有值:去对应分类术语的编辑页面,检查cat_header字段是不是已经填写了内容——空字段自然会返回NULL。

2. 验证$term对象是否有效

在代码里先打印$term,确认它是正确的WP_Term对象:

$term = get_queried_object();
var_dump($term); // 正常情况会输出包含term_id、name、taxonomy等属性的WP_Term对象

如果输出的不是WP_Term,说明当前页面并不是分类术语存档页,或者自定义查询覆盖了默认的queried object,这时候需要先确保页面上下文正确。

3. 换一种方式调用ACF字段

有时候直接传WP_Term对象可能出现识别问题,试试用术语ID加前缀的方式明确指定上下文:

$term = get_queried_object();
if ($term instanceof WP_Term) {
    // 用term_+术语ID的格式指定字段所属的分类术语
    $get_cat_name = get_field('cat_header', 'term_' . $term->term_id);
    var_dump($get_cat_name);
}

ACF对于分类术语字段,有时候需要明确标注上下文为term_{term_id}才能正确读取。

4. 排查缓存或插件/主题冲突

  • 同步ACF字段:进入ACF的「字段组」页面,点击顶部的「同步」按钮,确保字段组的设置已经同步到数据库。
  • 排查插件冲突:暂时禁用所有非ACF的插件,测试字段是否能正常读取,定位可能的冲突插件。
  • 切换主题:临时切换到WordPress默认主题(比如Twenty Twenty-Three),确认是不是当前主题的代码影响了ACF字段的读取。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 09:22:14