WordPressでは、投稿タイプごとに編集画面のUIや機能を柔軟にカスタマイズできます。特定のカスタム投稿タイプにおいて、Gutenbergやクラシックエディタを無効化したいケースもあるでしょう。例えば、管理画面上ではタイトルやカスタムフィールドだけを扱いたい場合などです。
この記事では、投稿タイプごとにエディター機能(投稿本文の入力欄)を無効化する方法について、functions.phpでの実装例を交えて解説します。
特定の投稿タイプでエディターを無効化する基本方法
投稿タイプ登録時に、supportsの設定を調整することで、投稿エディターの有無を制御できます。以下はエディターを無効化する例です。
function register_custom_post_type() {
register_post_type('my_post_type', array(
'labels' => array(
'name' => 'カスタム投稿',
),
'public' => true,
'has_archive' => true,
'menu_position' => 5,
'supports' => array('title'), // 'editor'を含めなければ本文エディターは非表示になる
));
}
add_action('init', 'register_custom_post_type');
'supports' => array('title')のように'editor'を除外することで、編集画面からエディター欄が削除されます。
既存の投稿タイプに対してエディターを無効化する方法
すでに登録されている投稿タイプ(例:プラグインが追加したものなど)に対して、後からエディターを無効にしたい場合は、remove_post_type_support()関数を使用します。
function disable_editor_for_specific_post_type() {
remove_post_type_support('event', 'editor'); // 投稿タイプ 'event' でエディターを無効に
}
add_action('init', 'disable_editor_for_specific_post_type');
この方法で、Gutenbergやクラシックエディタに関係なく、投稿本文の入力欄そのものを非表示にできます。
「エディターを消す」と「エディターの種類を切り替える」は別物
ここまで紹介したのは投稿タイプから本文エディター自体を取り除く方法ですが、これとは別に「Gutenbergではなくクラシックエディタを使いたい(本文エディター自体は残す)」というニーズもあります。この2つは目的が異なるため、同じ投稿タイプに両方を適用しないよう注意してください。
remove_post_type_support()で’editor’サポートを削除した投稿タイプは、本文の入力欄自体がGutenberg・クラシックエディタのどちらでも表示されません。エディターの種類を切り替えたい場合(本文エディター自体は残したまま、Gutenbergかクラシックエディタかを選びたい場合)は、editorサポートを残した別の投稿タイプに対して行ってください。
投稿タイプごとにGutenbergとクラシックエディタを使い分けたい場合は、use_block_editor_for_post_typeフィルターを使います。
function disable_gutenberg_for_custom_post_type($use_block_editor, $post_type) {
if ($post_type === 'news') {
return false; // Gutenbergを無効に(クラシックエディターを使用)
}
return $use_block_editor;
}
add_filter('use_block_editor_for_post_type', 'disable_gutenberg_for_custom_post_type', 10, 2);
これにより、投稿タイプ「news」ではクラシックエディタが表示されるようになり、他の投稿タイプではGutenbergが有効になります。複数の投稿タイプへの適用方法や、Classic Editorプラグインとの関係など、エディター切り替えについてのより詳しい実装は下記の関連記事で解説しています。
投稿タイプごとにエディター(Gutenberg/クラシック)を切り替える方法
よくある質問(FAQ)
まとめ
特定の投稿タイプだけでエディター機能を無効化することで、管理画面をよりシンプルかつ目的に合った形に整えることができます。supportsの指定やremove_post_type_support()の利用で本文エディター自体を取り除く方法と、use_block_editor_for_post_typeフィルターでエディターの種類だけを切り替える方法は目的が異なるため、用途に応じて使い分けましょう。
カスタム投稿タイプを使った構築が増える中、用途に応じて最適な編集画面を提供することは、運用者やクライアントの満足度にも直結します。

