帮助注销Gutenberg中的核心块类型

时间:2018-08-03 作者:LKD

我正试图在WordPress Gutenberg中注销核心块类型。

我使用了此处提供的代码:https://github.com/WordPress/gutenberg/blob/master/docs/extensibility/extending-blocks.md#removing-blocks

但我不能让它工作。我觉得我可能错过了一个简单的步骤?

我创建了一个插件,我在我的WP主题中激活了它

/**
 * Remove certain blocks.
 */
function clore_blacklist_blocks() {
    wp_enqueue_script(
        \'clore-blacklist-blocks\',
        plugins_url( \'blocks.js\', __FILE__ ),
        array( \'wp-blocks\' ),
        filemtime( plugin_dir_path( __FILE__ ) . \'blocks.js\' ) // Version: filemtime - Gets file modification time.
    );
}
add_action( \'enqueue_block_editor_assets\', \'clore_blacklist_blocks\' );
  1. 以块为单位。js我只有:
wp.blocks.unregisterBlockType( \'core/verse\' );
我原以为这样可以取消使用“Verse”块类型,但当我使用Gutenberg编辑器编辑页面时,“Verse”仍然存在。

当我从WP编辑页面查看页面源代码时,我可以看到我的“blocks.js”文件被正确引用,但它什么都没做。。。或者至少不是我想要的。你知道为什么吗?

2 个回复
SO网友:Misha Rudrastyh

一切都适合我allowed_block_types

示例:

add_filter( \'allowed_block_types\', \'my_function\' );

function my_function( $allowed_block_types ) {

    return array(
        \'core/paragraph\'
    );

}
您可以将上述代码插入到functions.php 文件到自定义插件。它删除除段落块以外的所有块。

此处有更多示例https://rudrastyh.com/gutenberg/remove-default-blocks.html

SO网友:Fat Pixel

按照古腾堡文件中的代码建议,也有同样的问题。

我通过添加wp.domReady() 调用JavaScript代码。所以,像这样:

wp.domReady( function() {
    wp.blocks.unregisterBlockType( \'core/verse\' );
});
现在,“verse”块已从块编辑器中删除。

我认为这与在admin中加载javascript文件的顺序有关。这个unregisterBlockType 应在加载块编辑器后调用。

希望这有帮助!

感谢PayteR的建议,请参见https://wordpress.org/gutenberg/handbook/designers-developers/developers/filters/block-filters/#using-a-blacklist 了解更多信息。

结束

相关推荐