WordPress Gutenberg 块:如何限制页面级块,但允许所有子级块
WordPress Gutenberg blocks: How to restrict page-level blocks, but allow all child-level blocks
在 WordPress 插件中,我创建了一些自定义 'layout' Gutenberg 块。这些基本上是包含其余页面内容的 'boxes'。我想限制用户仅将这些框添加到页面中,然后允许他们在其中放置 ANY 个子块。
我使用 allowed_block_types
过滤器找到了 how to limit Gutenburg blocks。这仅适用于限制用户将 'boxes' 添加到页面。
然后我找到了如何将 Gutenberg 块限制为仅允许特定的子块。即在 InnerBlocks 上,指定 allowedBlocks: ['core/paragraph','core/list','core/seperator',...]
以便 'boxes' 可以包含这些子块。
问题是 allowed_block_type 过滤器似乎覆盖了 allowedBlocks。
如何在 'page' 级别允许特定块,而在 'child' 级别允许其他块?
从我的 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';
}
在 WordPress 插件中,我创建了一些自定义 'layout' Gutenberg 块。这些基本上是包含其余页面内容的 'boxes'。我想限制用户仅将这些框添加到页面中,然后允许他们在其中放置 ANY 个子块。
我使用 allowed_block_types
过滤器找到了 how to limit Gutenburg blocks。这仅适用于限制用户将 'boxes' 添加到页面。
然后我找到了如何将 Gutenberg 块限制为仅允许特定的子块。即在 InnerBlocks 上,指定 allowedBlocks: ['core/paragraph','core/list','core/seperator',...]
以便 'boxes' 可以包含这些子块。
问题是 allowed_block_type 过滤器似乎覆盖了 allowedBlocks。
如何在 'page' 级别允许特定块,而在 'child' 级别允许其他块?
从我的 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';
}