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

使用Advanced Custom Fields创建Gutenberg区块出现内容重复如何解决

问题根因

ACF 古腾堡区块的字段值是和单个区块实例绑定存储的,直接调用 get_field('字段名') 时如果不指定区块上下文参数,函数会默认读取当前文章的全局自定义字段,或是优先返回第一个匹配到的同名字段值,因此多实例场景下会出现内容重复的问题。

解决步骤
  • 调整字段获取逻辑
    你需要在区块的渲染模板/渲染回调函数中,将当前区块的实例变量作为get_field的第二个参数传入。如果你使用ACF官方提供的区块渲染模板,默认会自动传入$block变量,直接调用即可,示例如下:
    // 错误写法
    // $heading = get_field('heading');
    
    // 正确写法
    $heading = get_field('heading', $block);
    $content_text = get_field('text', $block);
    $button_config = get_field('button', $block);
    
  • 校验区块注册配置
    确认你注册区块时的配置正确,supports数组中multiple参数已设置为true,同时不存在提前缓存字段值的逻辑,注册参考如下:
    add_action('acf/init', 'register_custom_simple_block');
    function register_custom_simple_block() {
        acf_register_block_type([
            'name' => 'simple-content-block',
            'title' => '简单内容区块',
            'supports' => [
                'multiple' => true,
            ],
            'render_template' => 'your-block-render-template-path.php',
        ]);
    }
    
  • 排查额外上下文干扰
    如果调整后问题仍然存在,检查是否存在自定义字段缓存逻辑、页面静态缓存配置,或是在区块渲染前有调用the_post()等修改全局文章上下文的代码,导致区块上下文被覆盖。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 08:48:02