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
相关产品推荐
相关产品推荐

