get_current_screen() の使い方|説明・引数・注意点

説明

get_current_screen() は、現在の管理画面の情報(画面ID、投稿タイプなど)を返す関数です。

基本構文

get_current_screen(): WP_Screen|null

引数

引数はありません。

戻り値

WP_Screen オブジェクト。

使い方(サンプル)

$screen = get_current_screen();
if ( $screen && 'post' === $screen->post_type ) {
	// 投稿画面での処理
}

注意点

  • 管理画面の初期(current_screen フックより前)では null になります。
  • 特定の画面でだけスクリプトを読み込む用途で使います。

実務での使いどころ

  • 管理画面の、特定のページだけで、処理を動かすとき。
  • 今開いている、画面の、投稿タイプや、画面のIDを、確認するとき。

よくあるミスと対処

  • 早い段階(admin_init など)で呼び、null が返る。current_screen 以降のフック(admin_head・admin_notices など)で呼ぶ。
  • フロント側で呼んでいる。この関数は、管理画面でしか使えず、フロントでは未定義になる。呼ぶ前に、function_exists() で確認する。
  • 画面のIDを、確認せずに、決め打ちしている。

NG例

add_action( 'admin_init', function () {
	$screen = get_current_screen();
	echo $screen->id; // null のとき、エラーになる
} );

OK例

add_action( 'admin_notices', function () {
	$screen = get_current_screen();
	if ( $screen && 'edit-post' === $screen->id ) {
		// 投稿の一覧画面だけで動く
	}
} );

使い分け早見表

やりたいこと 使うもの
今の、管理画面の情報を取得 get_current_screen()
管理画面かを判定 is_admin()
権限があるかを判定 current_user_can()

関連項目

is_admin()、admin_enqueue_scripts

公式リファレンス:get_current_screen() | Function | WordPress Developer Resources

コメント

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