get_current_screen()


WordPress関数get_current_screen()は、現在の管理画面に関する情報を取得するために使用されます。

構文

get_current_screen();

例 1: 現在のスクリーンのIDを取得

現在表示されている管理画面のスクリーンIDを取得します。

<?php
$screen = get_current_screen();
echo $screen->id;
?>

例 2: 特定のスクリーンかどうかを確認

現在のスクリーンが「投稿の編集画面」かどうかを確認します。

<?php
$screen = get_current_screen();
if ( $screen->id === 'post' ) {
    echo '投稿編集画面です';
}
?>

例 3: プラグインの設定ページでのみスクリプトを読み込む

特定のプラグイン設定ページでのみスクリプトを追加します。

<?php
add_action( 'admin_enqueue_scripts', function() {
    $screen = get_current_screen();
    if ( $screen->id === 'settings_page_my_plugin' ) {
        wp_enqueue_script( 'my-plugin-script' );
    }
} );
?>

例 4: カスタム投稿タイプのスクリーンで通知を表示

カスタム投稿タイプ「book」の管理画面で通知メッセージを表示します。

<?php
add_action( 'admin_notices', function() {
    $screen = get_current_screen();
    if ( $screen->post_type === 'book' ) {
        echo '<div class="notice notice-info"><p>これはBookカスタム投稿タイプの画面です。</p></div>';
    }
} );
?>

例 5: カスタムフィールドメタボックスの表示条件

特定の投稿タイプにのみカスタムフィールドのメタボックスを表示します。

<?php
add_action( 'add_meta_boxes', function() {
    $screen = get_current_screen();
    if ( $screen->post_type === 'product' ) {
        add_meta_box( 'custom_meta', '商品情報', 'callback_function', 'product' );
    }
} );
?>

注意事項

  • get_current_screen()は、管理画面でのみ動作します。フロントエンドでは使用しないでください。
  • フックによってはget_current_screen()が正しく機能しない場合があります。適切なフック(例: admin_notices, admin_enqueue_scriptsなど)を使用してください。

関連機能: