ブロックエディタの無効化

2025.04.08

WordPressにブロックエディタが登場してもう何年も経ち、多くのテーマがブロックエディタ対応に変化してきました。
ブロックエディタ登場前はクラシックエディタと呼ばれるエディタを投稿ページで使用していましたが、古くからWordPressを使ってきた方ほど、仕様のまったく違う二つのエディタに戸惑うことも多い(多かった)ように思います。

どちらを使うべきかや今後のサポートについてなどのお話は一旦棚上げさせて頂き、ブロックエディタの無効化のコードについてです。
結論から言いますと、下記のコードでブロックエディタを無効化できます。コードはfunctions.php等に記述すれば問題なく動作します。

/**
 * ブロックエディタを無効化
 */
add_filter('use_block_editor_for_post', '__return_false', 10);

もう少し手を加えて応用するなら、下記のような感じでしょうか。

/**
 * This function is used to disable the block editor. This is a filter hook of 'use_block_editor_for_post_type'.
 * @param boolean $use_block_editor Whether the post type can be edited or not. Default true.
 * @param string $post_type The post type being checked.
 * @return boolean
 */
function my_use_block_editor_post_type($use_block_editor, $post_type) {
    // ブロックエディタを使用する投稿タイプ
    $block_editor_post_type = [
        'post', // 投稿ページの編集にブロックエディタを使用する コメントアウトでクラシックエディタを使用する
//        'page', // 固定ページの編集にブロックエディタを使用する コメントアウトでクラシックエディタを使用する
//        'custom_post_type' // その他の投稿タイプも同様です
    ];
    $use_block_editor = (in_array($post_type, $block_editor_post_type)) ? true : false;
    return $use_block_editor;
}
/**
 * Set block editor by post_type
 */
add_filter('use_block_editor_for_post_type', 'my_use_block_editor_post_type', 10, 2);

シンプルなサイトであれば初めのコードのみで問題ないですが、カスタム投稿をいくつか使用している場合など、もう少し細かく設定したい場合に後述のコードを使用します。

個人サイトであればどちらのエディタでも問題はあまり起きないのですが、長くサイト運営されている企業などは現在の投稿方法(クラシックエディタ)に慣れてしまったため、
変更したくないといったクライアントも多いのが実情です。
また、記事を投稿する方の知識・技術レベルによる部分やブロックエディタの学習コストを許容できるかなどの問題もあり、なかなか「ブロックエディタ」一択とはならない現状が上記のようなコードを必要とする理由となっています。