作为一名主题开发人员,我经常希望嵌入块仅限于youtube和vimeo,就像Sven一样。下面是Sven的回答:在我的php代码中:
function my_theme_deny_list_blocks() {
wp_enqueue_script(
\'deny-list-blocks\',
get_template_directory_uri() . \'/assets/js/deny-list-blocks.js\',
array( \'wp-blocks\', \'wp-dom-ready\', \'wp-edit-post\' )
);
}
add_action( \'enqueue_block_editor_assets\', \'my_theme_deny_list_blocks\' );
在我的新javascript文件中,拒绝列表块。js公司:
wp.domReady( function() {
var embed_variations = [
\'amazon-kindle\',
\'animoto\',
\'cloudup\',
\'collegehumor\',
\'crowdsignal\',
\'dailymotion\',
\'facebook\',
\'flickr\',
\'imgur\',
\'instagram\',
\'issuu\',
\'kickstarter\',
\'meetup-com\',
\'mixcloud\',
\'reddit\',
\'reverbnation\',
\'screencast\',
\'scribd\',
\'slideshare\',
\'smugmug\',
\'soundcloud\',
\'speaker-deck\',
\'spotify\',
\'ted\',
\'tiktok\',
\'tumblr\',
\'twitter\',
\'videopress\',
//\'vimeo\'
\'wordpress\',
\'wordpress-tv\',
//\'youtube\'
];
for (var i = embed_variations.length - 1; i >= 0; i--) {
wp.blocks.unregisterBlockVariation(\'core/embed\', embed_variations[i]);
}
} );
请注意
vimeo 和
youtube 已注释。然而,这应该是一种更好的方法,例如禁用一行中的所有变体,然后只启用所需的变体。
还值得注意的是,使用allowed_block_types 将wordpress更新为5.6时,必须修改禁用嵌入的过滤器。