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

NextJS+无头WordPress:自定义ACF块双InnerBlocks内容重复求助

解决ACF自定义块中两个
return (<InnerBlocks />)
内容重复的问题

问题出在你直接在模板里使用两个未区分的<InnerBlocks />,WordPress会将它们的内容存储在同一个数据键下,导致内容同步重复。以下是具体解决步骤:

1. 修正block.json配置

移除block.json中的edit和save字段——ACF块的编辑与保存逻辑由ACF自动处理,无需自定义指定。修改后的配置如下:

{
  "name": "acf/columnswide",
  "title": "Columns Wide",
  "description": "A columns with full width",
  "category": "design",
  "keywords": ["columns", "full columns", "wide"],
  "icon": "columns",
  "apiVersion": 2,
  "acf": {
    "renderTemplate": "./columnsWide.php",
    "mode": "preview"
  },
  "supports": {
    "align": false
  },
  "example": {}
}

2. 通过ACF字段组分离内容

在ACF后台创建一个字段组,绑定到Columns Wide块(位置设置选择「块」→「Columns Wide」),并添加两个Inner Blocks类型的字段:

  • 字段名/键:first_column(对应第一列)
  • 字段名/键:second_column(对应第二列)

可根据需求设置每个字段允许的块类型、最大数量等规则。

3. 修改PHP模板渲染逻辑

更新columnsWide.php,通过ACF字段分别渲染两个列的内容,确保内容独立存储与展示:

<div class="columns-wide">
    <div class="columns-wide__column">
        <?php echo get_field('first_column'); ?>
    </div>
    <div class="columns-wide__column">
        <?php echo get_field('second_column'); ?>
    </div>
</div>

这样处理后,两个列的内容会分别存储在ACF的独立字段中,不会再出现同步重复的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 18:14:55