在WordPress插件中,我创建了一些自定义的“布局” Gutenberg块。这些基本上是包含其余页面内容的“框”。我想限制用户仅将这些框添加到页面中,然后再允许它们在其中放置 ANY 个子块。
我使用allowed_block_types
过滤器发现了how to limit Gutenburg blocks。这只是限制用户向页面添加“框”。
然后,我发现了如何将古腾堡块限制为仅允许特定的子块。即,在InnerBlocks上,指定allowedBlocks: ['core/paragraph','core/list','core/seperator',...]
,以便“框”可以包含这些子块。
问题在于,allowed_block_type过滤器似乎覆盖了allowedBlocks。
如何在“页面”级别允许特定的块,而在“孩子”级别允许其他块?
答案 0 :(得分:2)
从我的answer on WordPress StackExchange处发帖
简短的答案是您不能。但是您可以通过使用仅包含您的块并且被锁定的块模板来完成此操作。如果您的块具有InnerBlocks实例,则可以向其中添加任何已注册的块。
add_action( 'init', 'insert_template' );
function insert_template() {
$post_type_object = get_post_type_object( 'post' );
$post_type_object->template =[ [ 'your-custom-block-name'] ];
$post_type_object->template_lock = 'all';
}