この記事は最後に更新してから1年以上経過しています。

投稿情報からエディタータイプを判定する方法

説明

WordPressのプラグインは多種多様で、その中にはエディター(投稿編集画面)に関連するものが数多く存在する。そういったプラグインではクラッシックエディターのみに対応して存続させるか、ブロックエディターにきっちり対応するのか、選択肢は分かれるところだろう。いずれにせよエディタータイプを判別することは必要になると思われるため、その方法を検討した。

WordPressやプラグインのアップデートは任意であり、実際に動作している環境は多様化している。まずは一番オーソドックスと思われるWordPress 5.0.0環境で「Classic Editorプラグイン」の有無のケースを考えてみた。

「Classic Editorプラグイン」の設定内容は get_option関数で取得できる。ただし、0.5.0と1.0.0(現1.3.0)とでは振るまいが異なる。また「Classic Editorプラグイン」を無効化していてもget_option関数で値は取得できるため、「Classic Editorプラグイン」が有効かの判定も必要になる。「Classic Editorプラグイン」の設定内容でエディタータイプを判定するのは現実的ではないように思える。

そこで発想を変えて「新規追加」時に実行されるpost-new.phpファイルを見てみる。post-new.phpファイルではエディターの振り分け時に次のような判定を行っている。

if ( apply_filters( 'replace_editor', false, $post ) !== true ) {
	if ( use_block_editor_for_post( $post ) ) {
		// block editor
	} else {
		// classic editor
	}
}

はじめにreplace_editorフィルター(4.9.0で追加)にて独自エディターが適用されているか調べ、適用されていない場合は use_block_editor_for_post関数(5.0.0で追加)を使ってブロックエディターかどうかを判定する流れとなる。これであれば「Classic Editorプラグイン」の有効・無効を気にすることなく、エディタータイプを判定できる。5.0.0より前のバージョンを考慮するなら、use_block_editor_for_post関数を呼ぶ前にfunction_exists関数で有無を確認することになる。

とりあえず基本的な判定方法はこれでいけるだろう。悩ましいWordPress 4.9.8+「Gutenburgプラグイン」環境は少し様子見で。


最終更新 : 2018年12月13日 16:34


お勧め

wp_update_custom_css_post(2019年10月18日 更新)

WP_Post | WP_Error wp_update_custom_css_post( string $css [ , array $args = array() ] )
カスタマイザーの追加CSS情報を更新する。

wp_clear_auth_cookie(2024年2月21日 更新)

void wp_clear_auth_cookie()
ユーザー認証に関連するすべてのクッキーを削除する。

tag_escape(2013年8月3日 更新)

string tag_escape( string $tag_name )
無効な文字を除外したHTMLタグ名を取得する。

get_comments(2023年11月4日 更新)

array get_comments( [ mixed $args = '' ] )
コメント情報を取得する。

wp_get_mime_types(2021年9月9日 更新)

array wp_get_mime_types()
MIMEタイプのリストを取得する。