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とクラシックエディタの使い分けを投稿タイプごとに切り替えることも可能です。use_block_editor_for_post_type
フィルターを使うことで、Gutenbergの有効・無効を制御できます。
function disable_gutenberg_for_custom_post_type($use_block_editor, $post_type) {
if ($post_type === 'event') {
return false; // Gutenbergを無効に
}
return $use_block_editor;
}
add_filter('use_block_editor_for_post_type', 'disable_gutenberg_for_custom_post_type', 10, 2);
これにより、投稿タイプ「event」ではクラシックエディタが表示されるようになり、他の投稿タイプではGutenbergが有効になります。
まとめ
特定の投稿タイプだけでエディター機能を無効化することで、管理画面をよりシンプルかつ目的に合った形に整えることができます。supports
の指定やremove_post_type_support()
の利用、さらにuse_block_editor_for_post_type
フィルターによるGutenbergの制御まで含めて設計することで、WordPressの柔軟な運用が可能になります。
カスタム投稿タイプを使った構築が増える中、用途に応じて最適な編集画面を提供することは、運用者やクライアントの満足度にも直結します。