在WordPress 6.1.1上的内部块模板锁定=“全部”问题

5w9g7ksd  于 2023-01-16  发布在  WordPress
关注(0)|答案(1)|浏览(127)

我有一个自定义块,创建一个3列模板与InnerBlockstemplateLock="all"属性,以避免用户移动/删除或添加模板中的东西。它用来正确地工作在WordPress 6.0.3(和bellow)但后来当我更新到6. 1. 1时,它出现了问题。而不是锁定模板并显示我应该能够添加其他块的列,它会隐藏新插入的列,使它们在编辑器中不可选。
下面是创建innerBlocks的方法

<window.wp.blockEditor.InnerBlocks
    template={new Array(3).fill(['core/column', {}])}
    templateLock="all"
/>

下面是我复制块时得到的结果

<!-- wp:attest/grid-columns {"numColumnsStr":"3"} -->
<div class="grid grid--columns-3"><!-- wp:column -->
<div class="wp-block-column"></div>
<!-- /wp:column -->

<!-- wp:column -->
<div class="wp-block-column"></div>
<!-- /wp:column -->

<!-- wp:column -->
<div class="wp-block-column"></div>
<!-- /wp:column --></div>
<!-- /wp:attest/grid-columns -->

我试着看看WordPress 6.0.3以来的变化,但找不到有用的东西。
谢谢你的帮助。

j8ag8udp

j8ag8udp1#

实际上,子块继承自父块的templateLock属性,所以列是存在的,它们只是被锁定,当它们被新插入时,它们是空的,因此呈现为不可见。因此,想法是默认解锁core/column块及其(未来)子块。以下是我更新的代码

<window.wp.editor.InnerBlocks
    template={new Array(numColumns).fill(['core/column', {templateLock: false, lock: {move: false, remove: false}}])}
    templateLock='all'
/>

相关问题