Gutenbergで使用予定のないブロックを非表示にしたいことがあったので、設定方法をメモ。
サンプルコード
段落、画像、見出しのみ表示してみます。
functions.phpに下記を記述します。
function custom_allowed_block_types($allowed_blocks, $post) { return array( // テキスト 'core/paragraph', // 段落 'core/heading', // 見出し // 'core/list', // リスト // 'core/quote', // 引用 // 'core/code', // コード // 'core/freeform', // クラシック // 'core/preformatted', // 整形済みテキスト // 'core/pullquote', // プルクオート // 'core/table', // テーブル // 'core/verse', // 詩 // メディア 'core/image', // 画像 // 'core/gallery', // ギャラリー // 'core/audio', // 音声 // 'core/cover', // カバー // 'core/file', // ファイル // 'core/media-text', // メディアとテキスト // 'core/video', // 動画 // デザイン // 'core/buttons', // ボタン // 'core/columns', // カラム // 'core/group', // グループ // 'core/more', // 続き // 'core/nextpage', // ページ区切り // 'core/separator', // 区切り // 'core/spacer', // スペーサー // ウィジェット // 'core/shortcode', // ショートコード // 'core/archives', // アーカイブ // 'core/calendar', // カレンダー // 'core/categories', // カテゴリー // 'core/html', // カスタムHTML // 'core/latest-comments', // 最新のコメント // 'core/latest-posts', // 最新の投稿 // 'core/rss', // RSS // 'core/social-links', // ソーシャルアイコン // 'core/tag-cloud', // タグクラウド // 'core/search', // 検索 // 埋め込み // 'core/embed', // 埋め込み ); } add_filter('allowed_block_types', 'custom_allowed_block_types', 10, 10);
これで段落、画像、見出しのみ選択できる状態になりました。
他のブロックを使用する場合は該当のコメントアウトを外せばよいのですが、埋め込みの各項目(TwitterやYouTubeなど)は個別に非表示にできないようです。
確認した記事だとcore-embed/twitterやcore-embed/youtubeなどで個別に非表示にできていたようなので、WordPressのアップデートによる仕様変更の影響かもしれません。(記事作成時点では5.7を使用。)
先程の例だとGutenberg全体で制限をかけましたが、投稿タイプ別に設定することもできます。
function custom_allowed_block_types($allowed_blocks, $post) { $allowed_blocks = array( 'core/paragraph', // 段落 'core/heading', // 見出し 'core/image', // 画像 ); if($post->post_type === 'page') { $allowed_blocks[] = 'core/shortcode'; // ショートコード } return $allowed_blocks; } add_filter('allowed_block_types', 'custom_allowed_block_types', 10, 10);
これでデフォルトの投稿やカスタム投稿では段落、画像、見出しのみ選択できる状態、固定ページではそれにプラスでショートコードを選択できるようになりました。
コメントが承認されるまで時間がかかります。