Gutenberg使用時に不要項目を非表示にして、表示切り替えオプションからも削除する方法です。
同様のことをクラシックエディタで行う際はremove_meta_box()
を用いていましたが、Gutenbergの場合はremove_post_type_support()
やunregister_taxonomy_for_object_type()
を用います。
デフォルトではイメージ右側のように様々な項目が用意されていますが、サイト構成的に不要なものがあって非表示(機能削除)にしたい場合は、
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'
を指定します。
カテゴリーやタグなどのタクソノミー関連の項目を非表示にしたい場合はunregister_taxonomy_for_object_type()
を用いて、第1引数はタクソノミー名、第2引数は投稿タイプを記述します。
記述後、投稿画面を確認するとイメージのように各項目が非表示になっているのを確認でき、表示切り替えもオプション内からも削除されているのを確認できます。
ちなみに、ほぼ使うことはないと思いますがremove_post_type_support()
の第2引数に'title'
と記述すればタイトルを非表示にでき、'editor'
と記述すれば投稿画面の見栄えがクラシックエディタ時のものになります。
また、その他のよく使うものとして固定ページにある「ページ属性」項目を非表示にしたい場合は下記で非表示にできます。
remove_post_type_support( 'page', 'page-attributes' );