目次
使わないブロックを消したい
WordPressのブロックエディタ(Gutenberg)に用意されているブロックの数(特に埋め込み)が多すぎてちょっと使いづらい。
使わないブロックは消したい! そしてできれば投稿タイプごとに変えたい!
表示させるブロックはfunctions.phpで設定できる
add_filter( 'allowed_block_types', 'custom_allowed_block_types' );
function custom_allowed_block_types( $allowed_block_types ) {
$allowed_block_types = array(
'core/paragraph',
'core/heading',
'core/image',
);
return $allowed_block_types;
}
表示したいブロックを全部書く必要があるので、必要なものを選ぶ。
ブロック名は \wp-includes\js\dist\block-library.js ここに書かれている。
参考:Removing Default Gutenberg Blocks
プラグインで追加したブロックも、同じように設定できる
たとえばBlock Labで追加したブロックは「block-lab/[ブロックのスラッグ名]」となる。
'block-lab/testblock'
Lazy Blocksで追加したブロックは「lazyblock/[ブロックのスラッグ名]」となる
'lazyblock/testblock'
投稿タイプごとに、設定をifで切り分ける
allowed_block_typesの記述をpost_typeごとに分岐させることで、管理画面上の表示を制御できる。
functions.php
//表示ブロック設定
add_filter( 'allowed_block_types', 'custom_allowed_block_types', 10, 2 );
function custom_allowed_block_types($allowed_block_types, $post)
{
if ( $post->post_type === 'post' ) {//postの時
$allowed_block_types = array(
'core/paragraph', // 段落
'core/heading', // 見出し
'core/image', // 画像
'core/quote', // 引用
'core/gallery', // ギャラリー
'core/list', // リスト
'core/audio', // 音声
'core/file', // ファイル
'core/video', // 動画
// フォーマット
'core/code', // ソースコード
'core/freeform', // クラシック
'core/html', // カスタムHTML
'core/table', // テーブル
// ウィジェット
'core/shortcode', // ショートコード
// 埋め込み
'core/embed', // 埋め込み
'core-embed/youtube', // YouTube
// 再利用ブロック
'core/block', // 再利用ブロック
//block-labプラグインの追加ブロック
'block-lab/testblock' //block-lab追加ブロック
);
}
else{//それ以外の時
$allowed_block_types = array(
'core/paragraph', // 段落
'core/heading', // 見出し
'core/image', // 画像
'core/quote', // 引用
'core/gallery', // ギャラリー
'core/list', // リスト
// フォーマット
'core/code', // ソースコード
'core/freeform', // クラシック
'core/html', // カスタムHTML
'core/table', // テーブル
// ウィジェット
'core/shortcode', // ショートコード
);
}
return $allowed_block_types;
}
参考↓↓
https://www.nxworld.net/wordpress/wp-gutenberg-remove-default-block.html
[おまけ] 特定の固定ページだけ表示ブロックを変える
分岐をpost_typeではなくpost_nameで行えば、投稿/固定ページのslugで分岐できます。
add_filter('allowed_block_types', 'custom_allowed_block_types', 10, 2);
function custom_allowed_block_types($allowed_block_types, $post)
{
if ($post->post_name === 'product') {//投稿スラッグproductのとき
$allowed_block_types = array(
'core/paragraph', // 段落
'core/heading', // 見出し
'core/image', // 画像
'core/quote', // 引用
'core/gallery', // ギャラリー
'core/list', // リスト
'lazyblock/balloon' // Lazy blocksのオリジナルブロック
);
} else {
$allowed_block_types = array(
'core/paragraph', // 段落
'core/heading', // 見出し
'core/image', // 画像
'core/quote', // 引用
'core/gallery', // ギャラリー
'core/list', // リスト
);
}
return $allowed_block_types;
}
コメント