便利なブロックエディタですが、WordPressをCMSとして使う際などに、クライアントが操作するにはハードルが高い…ということもあるあるです。クライアントが更新するのは「投稿」だけなので、ここだけブロックエディタを使わないようにしたい、というような状況で使えるチップスです。
投稿タイプごとにブロックエディタを使うかどうかを判断する use_block_editor_for_post_type()
という関数があり、そこへフィルターフックで条件を追加します。
下記の例は投稿タイプが「投稿(post)」だったら、ブロックエディタを「使わない」場合のサンプルコードです。
function hide_block_editor( $use_block_editor, $post_type ) {
if ( $post_type === 'post' ) {
return false;
}
return $use_block_editor;
}
add_filter( 'use_block_editor_for_post_type', 'hide_block_editor', 10, 2 );
use_block_editor_for_post_type()
の概要にも記載がありますが、
The block editor depends on the REST API, and if the post type is not shown in the REST API, then it won’t work with the block editor.
https://developer.wordpress.org/reference/functions/use_block_editor_for_post_type/#description
ブロックエディタは REST API に依存しているので投稿タイプ REST API に含まない場合はブロックエディタが働かないです。カスタム投稿を追加して使う際などに、'show_in_rest'
をうっかり false
に設定していたり、
余談 プラグイン「Classic Editor」を使う
「Classic Editor」プラグインは、サイト内でブロックエディタを無効化するだけではなく、デフォルトでどちらのエディタを使うかや、ユーザごとにどちらを使うか、記事ごとにブロックエディタを使うか従来のエディタを使うか選択することができます。ブロックエディタを全く切り捨ててしまうより、少しずつでもブロックエディタの画面に慣れてもらう方がメリットが大きいと思う場合は、このプラグインを使う手もあるかな、と思います。