WordPress:Gutenbergの不要項目を非表示にする

WordPress:Gutenbergの不要項目を非表示にする

Gutenberg使用時に不要項目を非表示にして、表示を切り替えるオプションからも削除する方法です。
以前の編集画面(クラシックエディタ)ではremove_meta_box()で使用しましたが、Gutenbergの場合はremove_post_type_support()unregister_taxonomy_for_object_type()を使用します。

Gutenbergデフォルト画面

デフォルトではイメージ右のように様々な項目が用意されていますが、サイト構成的に不要なものがあって非表示(機能削除)にしたい場合は、functions.phpへ下記のように記述することで非表示にできます。

functions.php

add_action( 'init', 'remove_block_editor_options' );
function remove_block_editor_options() {
  remove_post_type_support( 'post', 'author' );              // 投稿者
  remove_post_type_support( 'post', 'post-formats' );        // 投稿フォーマット
  remove_post_type_support( 'post', 'revisions' );           // リビジョン
  remove_post_type_support( 'post', 'thumbnail' );           // アイキャッチ
  remove_post_type_support( 'post', 'excerpt' );             // 抜粋
  remove_post_type_support( 'post', 'comments' );            // コメント
  remove_post_type_support( 'post', 'trackbacks' );          // トラックバック
  remove_post_type_support( 'post', 'custom-fields' );       // カスタムフィールド
  unregister_taxonomy_for_object_type( 'category', 'post' ); // カテゴリー
  unregister_taxonomy_for_object_type( 'post_tag', 'post' ); // タグ
}

項目の非表示は基本的にremove_post_type_support()を使用し、第1引数は適用する投稿タイプ、第2引数は非表示にしたい項目名を記述します。
このサンプルコードの場合はすべて第1引数に'post'を指定しているので「投稿」のGutenbergに適用される内容になり、例えば固定ページに適用したいなら第1引数に'page'を指定します。
ちなみに、ほぼ使うことはないと思いますが第2引数に'title'を記述すればタイトルを非表示にでき、editorを入れれば投稿画面の見栄えがクラシックエディタ時のものになります。
また、他のものとして固定ページにある「ページ属性」項目を非表示にしたい場合は下記で非表示にできます。

remove_post_type_support( 'page', 'page-attributes' );

カテゴリーやタグなどのタクソノミー関連を非表示にしたい場合はunregister_taxonomy_for_object_type()を使用し、こちらは第1引数はタクソノミー名、第2引数は投稿タイプを記述します。

記述後、投稿画面を確認するとイメージのように各項目が非表示になっているのを確認でき、表示を切り替えるオプション内からも削除されているのを確認できます。

Gutenbergカスタマイズ後の画面

Close the search window,
please press close button or esc key.