【WordPress】投稿タイプごとにエディター(Gutenberg/クラシック)を切り替える方法

【WordPress】投稿タイプごとにエディター(Gutenberg/クラシック)を切り替える方法 WordPress

WordPress 5.0以降、デフォルトの投稿エディターはブロックエディター(Gutenberg)に変更されましたが、すべての投稿タイプでGutenbergを使いたいとは限りません。カスタム投稿タイプごとに、Gutenbergとクラシックエディターを使い分けたいというケースも多いでしょう。

本記事では、投稿タイプ単位で使用するエディターを制御する方法を紹介します。

実装の概要

WordPressでは、use_block_editor_for_post_typeフィルターを使うことで、投稿タイプごとにブロックエディター(Gutenberg)を有効・無効にすることができます。
このフィルターに条件を追加することで、カスタム投稿タイプごとにクラシックエディターへ切り替えることが可能です。

投稿タイプごとにGutenbergを無効にする方法

以下のコードをfunctions.phpに追加してください。ここでは例として、newsというカスタム投稿タイプをクラシックエディターに切り替える場合です。

function disable_gutenberg_for_specific_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_specific_post_type', 10, 2);

このコードでは、投稿タイプがnewsの場合だけGutenbergを無効にし、クラシックエディターを使用するようにしています。

複数の投稿タイプで切り替えたい場合

複数の投稿タイプでクラシックエディターに切り替えたい場合は、配列で指定します。

function disable_gutenberg_for_some_post_types($use_block_editor, $post_type) {
  $disabled_post_types = array('news', 'event', 'voice');
  if (in_array($post_type, $disabled_post_types, true)) {
    return false;
  }
  return $use_block_editor;
}
add_filter('use_block_editor_for_post_type', 'disable_gutenberg_for_some_post_types', 10, 2);

上記の例では、newseventvoiceの投稿タイプではクラシックエディターが使われ、それ以外はGutenbergが有効になります。

注意点:クラシックエディタープラグインの有無

この方法は、WordPress本体に標準で備わっているGutenberg制御のフィルターを使っているため、「Classic Editor」プラグインは必須ではありません。ただし、クラシックエディターのUIを明示的に使いたい場合は、プラグインを併用しておくと安定動作します。

カスタム投稿タイプの登録時にGutenbergを無効化する方法

カスタム投稿タイプをregister_post_type()で登録する際に、下記の設定でもブロックエディターを無効化できます。

'show_in_rest' => false

ただしこの方法では、GutenbergだけでなくREST API連携も無効になるため、ブロックエディターのみを制御したい場合はフィルターを使う方法がおすすめです。

まとめ

カスタム投稿タイプごとにGutenbergとクラシックエディターを使い分けることで、編集画面のUXや運用の効率性を最適化できます。特に、

  • シンプルな入力欄だけで済む投稿タイプ
  • カスタムフィールド主体の投稿
  • 既存のクラシックUIに依存しているテンプレート

といったケースではクラシックエディターが依然として有効です。柔軟に使い分けて、効率的な投稿管理を実現しましょう。