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

如何在ACF的Select Field中正确解析并显示短代码内容?

解决ACF选择字段中短代码不解析的问题

方法一:直接生成分类/标签作为ACF选项(推荐)

ACF的Select字段默认不会自动解析短代码,与其放短代码,不如直接把分类、标签作为选项动态生成,选完就能拿到真实名称:

  1. 在主题的functions.php中添加以下代码,用来拉取分类和标签作为选项:
// 生成ACF分类选择字段的选项
function acf_get_category_options() {
    $categories = get_categories(['hide_empty' => false]);
    $options = [];
    foreach ($categories as $cat) {
        $options[$cat->term_id] = $cat->name;
    }
    return $options;
}

// 生成ACF标签选择字段的选项
function acf_get_tag_options() {
    $tags = get_tags(['hide_empty' => false]);
    $options = [];
    foreach ($tags as $tag) {
        $options[$tag->term_id] = $tag->name;
    }
    return $options;
}
  1. 回到ACF的字段编辑页面:
    • 针对分类选择字段,将「选项」设置为「动态选项」,选择「函数」后输入acf_get_category_options
    • 针对标签选择字段,同理选择acf_get_tag_options
    • 可在「返回格式」里选「标签」(直接返回名称),或「值」(返回分类/标签ID,前端需用get_term($field_value)->name获取名称)

方法二:手动解析短代码(适合已有字段不想修改的情况)

如果已经把短代码放进了Select选项里,只需在前端调用ACF字段时,用do_shortcode()包裹字段值,强制解析短代码:

// 替换成你的ACF字段名
echo do_shortcode(get_field('your_select_field_key'));

这样原本显示[post_category]或[post_tag]的地方,就会被解析成对应的分类/标签名称了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 01:45:59