如何在古登堡编辑中限制第一级块的选择

时间:2020-10-29 作者:kanlukasz

我有自己的自定义块,带有InnerBlock 属于container 文件中各节的内容。

添加内容的整个过程始终从添加此块开始。因此,我想limit the selection of first level blocks to only this one block.

一旦用户添加了这个块,他就可以在里面添加其他块。

这是一个没有代码示例的问题,因为我不知道从哪里开始。我见过一个像模板这样的想法,但这在这种情况下并不合适。

Goal to be achieved (in simple words):

  • 用户创建一个新帖子,只能选择一个特定的块,只能在这个块中选择其他可用的块,它可以在一篇帖子中多次出现

1 个回复
SO网友:Welcher

创建一个新的自定义块,让我们调用它CustomSecondary, 包含InnerBlocks 例子

注册此块集时parent property to your main custom block

registerBlockType(
    \'custom-secondary\',
    {
        parent: [\'your-main-block],
        edit: () => ( <InnerBlocks />)
        { .. your other properties }
    });
这将使该块只能插入到主块中。

edit 属性添加allowedBlocks 你的道具InnerBlocks 实例并仅允许custom-secondary

<InnerBlocks allowedBlocks={[ \'custom-secondary\' ]} />

现在,当您插入时,只有该选项,然后custom-secondary 里面可以有你想要的任何积木。

要控制post-it self的模板,可以添加following filter:

function myplugin_register_template() {
    $post_type_object = get_post_type_object( \'post\' );
    $post_type_object->template = array(
        array( \'core/image\' ),
    );
}
add_action( \'init\', \'myplugin_register_template\' );
您可能需要考虑将锁定的模板与可以插入项目的单个块一起使用。

相关推荐