防止从模板中删除块

Prevent remove blocks from template

首先,我正在使用 acf 创建古腾堡块(我认为谈论它很重要)。

我为我的餐厅菜单定制了 post 类型,我想为每个菜单强制使用完全相同的布局 post秒。 我做了背景块,可以在里面添加块。

<div class="background">
    <div class="background-color" style="background-color: <?php echo $background ?>"></div>
    <InnerBlocks />
</div>

为了获得与每个 post 相似的布局,我在我的 cpt

中设置了模板参数
'template_lock' => 'all',
'template' => [
    ['acf/background', ['className' => 'meal_description', 'data' => ['admin_section_name' => 'Meal description']], [
                ['core/paragraph', ['align' => 'center', 'placeholder' => __('Your block there', 'restaurant')]],
            ]],
        ];

不幸的是,当我将 template_lock 设置为 all 时,我无法在名为背景的“inner_blocks”中添加块。 我正在寻找管理员只能在预定义块中添加一些块的解决方案。

您是否尝试过将 templateLock="false" 添加到 InnerBlocks 元素?

例如<InnerBlocks templateLock="false"/>

templateLock 向下传递给子元素,因此在 InnerBlocks 上设置值应该覆盖父值。

https://github.com/WordPress/gutenberg/tree/master/packages/block-editor/src/components/inner-blocks#templatelock

If locking is not set in an InnerBlocks area: the locking of the parent InnerBlocks area is used.