WordPress中ACF短码无法获取项目自定义字段值的技术求助
解决ACF短码在WPBakery文本元素中返回空值的问题
1. 验证ACF短码启用代码
先确认你在主题functions.php中启用ACF短码的代码是否正确,替换为以下标准代码后刷新站点测试:
add_filter('acf/settings/shortcode_enabled', '__return_true');
2. 确保短码在文章上下文内调用
WPBakery文本元素如果脱离了Project文章的循环上下文(比如在Grid Builder的全局区域而非项目项内部),ACF无法识别当前文章ID,会返回空值。必须保证短码是在单个Project文章模板或Grid Builder的项目循环组件内部使用。
3. 自定义短码替代(更可靠方案)
如果默认ACF短码仍无法正常工作,建议自定义短码直接输出格式化后的位置信息,完全适配你的布局需求:
在functions.php中添加以下代码:
function project_location_shortcode() { // 仅在Project自定义文章类型下生效 if (get_post_type() !== 'project') return ''; $town = get_field('town'); $state = get_field('state'); // 按规则格式化输出,处理空值情况 if ($town && $state) { return sprintf('%s, %s', esc_html($town), esc_html($state)); } elseif ($town) { return esc_html($town); } elseif ($state) { return esc_html($state); } return ''; } add_shortcode('project_location', 'project_location_shortcode');
之后在WPBakery的文本元素中直接使用[project_location]即可,输出内容默认是左对齐的单行文本,无需担心布局限制。
4. 复查ACF字段配置
- 确认
town和state字段的位置规则已正确关联到Project自定义文章类型; - 再次检查字段的“Allow Access to Value in Editor UI”选项处于开启状态。
内容的提问来源于stack exchange,提问作者jmelvin
相关产品推荐
相关产品推荐

