我有一个使用<InnerBlocks />
的块。我知道我可以在后端导入InnerBlocks
组件,它将在我的块的顶部渲染一个块编辑器。在我的代码块的save
函数中,我可以使用<InnerBlocks.Content />
,它将仅呈现代码块的内容。
我的目标是在后端也拥有<InnerBlocks.Content />
,即内部块的不可编辑版本。这是我的状态,它将预览已编辑的设置。我可以使用
<InnerBlocks templateLock="all" />
要摆脱编辑器中的所有插入点,使其无法添加新块。但是,现有的内部块仍将是可编辑的。是否有一个块属性或编辑器设置可以完全禁用某些块的编辑?还是可以通过其他方式实现我的目标?
要求不同:如何在编辑器中获取和显示任何块的内容(带有内部块的内容)?
答案 0 :(得分:0)
场景中块的当前行为是预期行为。您可以限制用户在块中进行更改意味着添加/删除块,但是块本身及其子块将保持可配置状态,这意味着更改颜色,字体大小等。
您可以使用Block Filters来更改块的默认值,其概念与WordPress钩子一样。虽然您可以使用此功能来更改核心块的行为,但我不建议这样做,因为它会引入复杂性或影响依赖于这些块的其他块(例如WooCommerce之类的插件块)。在您可以通过使用任何属性值显示或隐藏内部块的情况下,我将更喜欢开发自定义块。
如果您有兴趣为古腾堡(Gutenberg)做出贡献,那么我认为这将是当前区块的不错补充。