限制可供用户选择的Gutenberg块

时间:2021-08-13 作者:user8463989

我正在使用allowed_block_types_all 筛选以选择用户可以从中选择的某些块。我刚刚在这里添加了一个示例。这很好,但我在尝试选择嵌入时遇到了问题。

add_filter( \'allowed_block_types_all\', \'usr_allowed_block_types\' );
function usr_allowed_block_types( $allowed_blocks ) {
  return array(
    \'core/paragraph\',
    \'core-embed/twitter\'
  );
}
我看到了这段文字,但没有看到推特。如果我添加core/embed 然后我得到了我真的不想要的所有嵌入。

1 个回复
最合适的回答,由SO网友:user8463989 整理而成

在函数中。我添加的php文件

add_filter( \'allowed_block_types_all\', \'func_allowed_block_types\' );
function func_allowed_block_types( $allowed_blocks ) {
 
    return array(
        \'core/embed\'
    );
}
然后在我的插件中,我将这个JS添加到javascript文件中,以便只启用我想要的嵌入块(Twitter、youTube和Vimeo)

wp.domReady( function() {
    const allowedEmbedBlocks = [
        \'twitter\',\'youtube\', \'vimeo\'
    ];

    wp.blocks.getBlockType( \'core/embed\' ).variations.forEach( function( blockVariation ) {
        if (
            allowedEmbedBlocks.indexOf( blockVariation.name ) === -1
        ) {
            wp.blocks.unregisterBlockVariation( \'core/embed\', blockVariation.name );
        }
    } );
} );