WordPress Gutenberg块:如何限制页面级块,但允许所有子级块

Pro*_*tis 5 wordpress wordpress-gutenberg

在一个WordPress插件中,我创建了一些自定义的“布局” Gutenberg块。这些基本上是包含其余页面内容的“框”。我想用户限制为只添加这些箱子到一个网页,但随后让他们把任何内他们的孩子块。

我发现了如何使用allowed_block_types过滤器来限制古腾堡块。这仅用于限制用户向页面添加“框”。

然后,我发现了如何将古腾堡块限制为仅允许特定的子块。即在InnerBlocks上指定,allowedBlocks: ['core/paragraph','core/list','core/seperator',...]以便“框”可以包含这些子块。

问题在于,allowed_block_type过滤器似乎覆盖了allowedBlocks。

如何在“页面”级别允许特定的块,而在“孩子”级别允许其他块?

Wel*_*her 1

从我的交叉发布在 WordPress StackExchange 上的回答交叉发布

\n\n

简短的回答是你可以\xe2\x80\x99t。但是您可以通过使用仅包含您的块并被锁定的块模板来完成此操作。如果您的块有一个 InnerBlocks 实例,您可以向其中添加任何已注册的块。

\n\n
add_action( \'init\', \'insert_template\' );\nfunction insert_template() {\n    $post_type_object = get_post_type_object( \'post\' );\n    $post_type_object->template =[ [ \'your-custom-block-name\'] ];\n    $post_type_object->template_lock = \'all\';\n}\n
Run Code Online (Sandbox Code Playgroud)\n