ウェブ
FRIDAY 2023 / 9 / 8
WordPressの編集画面でブロックエディタを使用中かどうか調べるPHPコード
Text by Hiroyuki Matsumoto
WordPressの管理画面内でヘッダ情報を出力したい際に、現在の編集画面がブロックエディタかどうかを調べたいというケースがあり調べました。
冒頭の状態、例えば functions.php が動作している際や、管理画面に入った初期段階の admin_initフックが呼び出された時点ではまだ状態が取得できません。
管理画面でheadタグ内の処理を開始する admin_headフック時点以降で初めて状態が取得できるようになります。
<?php
add_action('admin_head', function(){
$screen = get_current_screen();
if($screen->is_block_editor){
// ここにブロックエディタ時に実行する処理を書く
}
});
get_current_screen関数はグローバル変数の $current_screen を呼び出しているだけですが、admin_head以降でないとNULLとなります。
下記に変数をvar_dumpで出力した際の例を残しておきます。
object(WP_Screen)#14979 (18) {
["action"]=>
string(0) ""
["base"]=>
string(4) "post"
["columns":"WP_Screen":private]=>
int(0)
["id"]=>
string(4) "menu"
["in_admin":protected]=>
string(4) "site"
["is_network"]=>
bool(false)
["is_user"]=>
bool(false)
["parent_base"]=>
NULL
["parent_file"]=>
NULL
["post_type"]=>
string(4) "menu"
["taxonomy"]=>
string(0) ""
["_help_tabs":"WP_Screen":private]=>
array(0) {
}
["_help_sidebar":"WP_Screen":private]=>
string(0) ""
["_screen_reader_content":"WP_Screen":private]=>
array(0) {
}
["_options":"WP_Screen":private]=>
array(0) {
}
["_show_screen_options":"WP_Screen":private]=>
NULL
["_screen_settings":"WP_Screen":private]=>
NULL
["is_block_editor"]=>
bool(true)
}
9
TEXT by
松本 博之(まつもとひろゆき)
1978年、鳥取県米子市生まれ。
株式会社マジックワード WEBシステムの開発・運用を担当。
WordPressの実績多数。表面的な使用方法を把握するだけでなく、WordPressのソースコードを読み解いて対応できます。
国家資格の応用情報処理技術者をなんとなくとりました。
















