説明
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

コメント