説明
WP_Screen は、管理画面の現在のページの情報を表すクラスです。get_current_screen() が返します。
基本構文
WP_Screen
引数
id:画面IDbase:画面の基本種別post_type:投稿タイプtaxonomy:タクソノミーis_block_editor():ブロックエディターか
戻り値
WP_Screen オブジェクト。
使い方(サンプル)
$screen = get_current_screen();
if ( $screen && 'post' === $screen->base ) {
// 投稿の編集画面
}
注意点
- 早いタイミングでは
nullになるため、存在確認をします。
実務での使いどころ
- 管理画面の、今のページ(画面のID、投稿タイプ、基本の種類)を、判定するとき。
- 特定の画面でだけ、スクリプトや通知を、出すとき。
よくあるミスと対処
current_screenより前(admin_initなど)で、取得し、nullになる。- フロント側で、呼んでいる。管理画面でしか、使えない。
- 画面のIDを、確認せずに、決め打ちしている。
NG例
add_action( 'admin_init', function () {
$screen = get_current_screen();
echo $screen->id; // null のとき、エラーになる
} );
OK例
add_action( 'current_screen', function ( $screen ) {
if ( 'edit-post' === $screen->id ) {
// 投稿の一覧画面
}
} );
使い分け早見表
| やりたいこと | 使うもの |
|---|---|
| 今の画面を取得する | get_current_screen() |
| 管理画面かを判定する | is_admin() |
| 画面ごとに、処理を分ける | current_screen フック |

コメント