【WordPress】投稿画面が固定ページかどうか判定する方法

WordPressを利用していると、投稿タイプによって異なる処理を行いたいことが多々あります。特に、固定ページ(ページ)と投稿(ポスト)を区別して処理を変えることが求められる場面が多いです。本記事では、WordPressの投稿画面が固定ページかどうかを判定するための方法について解説します。

get_current_screenを使用する方法

この方法は、管理画面の特定の画面情報を取得するのに便利です。

add_action('load-post.php', 'check_if_page');
add_action('load-post-new.php', 'check_if_page');

function check_if_page() {
    $screen = get_current_screen();
    if ($screen->post_type == 'page') {
        // 固定ページの編集画面
        // ここに固定ページの場合の処理を記述
        echo 'This is a Page.';
    }
}

このコードは、投稿編集画面が読み込まれたときに実行され、現在の画面が固定ページの編集画面であるかどうかを判定します。

global $postを使用する方法

投稿の詳細が必要な場合、この方法が有用です。

add_action('admin_head', 'check_if_page_admin');

function check_if_page_admin() {
    global $post;
    if (isset($post) && $post->post_type == 'page') {
        // 固定ページの編集画面
        // ここに固定ページの場合の処理を記述
        echo 'This is a Page.';
    }
}

このコードは、管理画面のヘッダー部分が読み込まれるときに実行され、現在の投稿が固定ページであるかどうかを判定します。

current_screenフックを使用する方法

これはよりシンプルなアプローチです。

add_action('current_screen', 'check_if_page_current_screen');

function check_if_page_current_screen($screen) {
    if ($screen->post_type == 'page') {
        // 固定ページの編集画面
        // ここに固定ページの場合の処理を記述
        echo 'This is a Page.';
    }
}

このコードは、現在のスクリーン情報が取得されるときに実行され、現在の画面が固定ページの編集画面であるかどうかを判定します。

まとめ

WordPressの投稿画面が固定ページかどうかを判定する方法は複数あります。get_current_screenやglobal $post、current_screenフックを使用することで、管理画面での処理を柔軟に制御することができます。自身の開発環境や要件に応じて最適な方法を選び、効率的なWordPress管理を実現しましょう。