【WordPress】一部のページのみGutenbergを無効にする

ページによってエディタを切り替えるお話

WordPressのエディタはいろいろあると思いますが、私はGutenbergが苦手なのでClassicEditorを使用しています。

今回はとあるWordPressサイトにてデフォルトはGutenbergで一部のページのみClassicEditorにしたいとのこと。

複数人で運用していたりするとエディタでもめたりするのかなーと思いましたが、どうやらカスタムフィールドを利用しているページではGutenbergが使いにくいためということでした。

デフォルトをClassicEditorにすればいいのにとも考えましたが、Gutenbergのほうが使いやすいという場合もあるのだろうと思い対応してみました。

スポンサーリンク

functions.php

例えば固定ページでスラッグが「hoge」と「fuga」のページはClassicEditorにしたい場合。

「use_block_editor_for_post」というイベントにフィルターを追加します。

functions.phpに下記のように記述します。

function disable_block_editor($use_block_editor, $post){
    $post_type = $post->post_type;
    $post_name = $post->post_name;
    if($post_type === 'page' && ($post_name === 'hoge' || $post_name === 'fuga')) {
        return false;
    }
    return $use_block_editor;
}
add_filter( 'use_block_editor_for_post', 'disable_block_editor', 10, 2 );

また権限別に変更することも可能です。

下記のように記述すれば管理者のみGutenbergが無効になります。

if ( current_user_can('administrator') ) {
    add_filter( 'use_block_editor_for_post', '__return_false' );
}

用途によって切り分けられるので便利ですね。

コメント

タイトルとURLをコピーしました