我已安装https://github.com/godaddy-wordpress/coblocks 并且只想提供基于OpenStreetMap的块(我另外安装了),并删除coblocks/map
块
add_filter( \'allowed_block_types_all\', \'myplugin_allowed_block_types\', 0 );
function myplugin_allowed_block_types( $allowed_blocks )
{
$block_types = WP_Block_Type_Registry::get_instance()->get_all_registered();
if (!isset($block_types[\'coblocks/map\'])) {
wp_die(\'Block not found to unset\');
}
unset($block_types[\'coblocks/map\']);
return array_keys($block_types);
}
这个死了
Block not found to unset
实际上,代码在没有检查的情况下可以工作,但我想知道是否还有其他块不在注册表中,但仍然可以工作,并且会被我的代码禁用。
所以本质上我是在问为什么get_all_registered
没有一些仍然存在的块,如果无法可靠地获取所有块的列表,如何仅删除特定块。
最合适的回答,由SO网友:StudioAl 整理而成
您将希望通过javascript专门针对该块。简要示例:
wp.domReady(function() {
wp.blocks.unregisterBlockType( \'coblocks/map\' );
});
将其保存到js文件,并通过自定义函数将其排队:
add_action(\'enqueue_block_editor_assets\', \'your_custom_enqueue_fucntion\')