WordPressのログイン画面を取得する方法

WordPressのログイン画面を取得する方法
WordPress学習におすすめの書籍

Amazonの読み放題サービスKindle Unlimited無料体験キャンペーン実施中!

Amazon Kindle Unlimited 公式

WordPressを使っていると、管理画面やサイトの表示状態を判定することが多いですよね。たとえば、現在ログインしているかどうかを判定するには is_admin 関数を使います。しかし、特定のページ、例えばログイン画面や登録画面を表示しているかどうかを判定するには、少し工夫が必要です。

ログイン画面や登録画面の判定方法

WordPressのログイン画面(wp-login.php)や登録画面(wp-register.php)を表示しているかどうかを判定するには、以下のようなコードを使用します。

方法1: global $pagenow を使用する

まず、WordPressのグローバル変数 $pagenow を使用する方法です。この変数は現在のページのファイル名を格納しています。

PHP
function is_login_page() {
    global $pagenow;
    return in_array($pagenow, array('wp-login.php', 'wp-register.php'));
}

if (is_login_page()) {
    // ログイン画面または登録画面です
}

このコードでは、$pagenowwp-login.php または wp-register.php である場合に true を返します。これにより、現在表示されているページがログイン画面または登録画面であるかどうかを簡単に判定できます。

方法2: $_SERVER['PHP_SELF'] を使用する

次に、サーバー変数 $_SERVER['PHP_SELF'] を使用する方法です。この変数は現在のスクリプトのパスを返します。

PHP
function is_login_page() {
    $current_file = basename($_SERVER['PHP_SELF']);
    return in_array($current_file, array('wp-login.php', 'wp-register.php'));
}

if (is_login_page()) {
    // ログイン画面または登録画面です
}

このコードでは、$_SERVER['PHP_SELF'] の結果からファイル名を抽出し、それが wp-login.php または wp-register.php であるかどうかを確認します。

実際の活用例

上記の関数を使って、例えば特定のCSSやJavaScriptをログイン画面または登録画面のみに適用することができます。

PHP
function custom_login_styles() {
    if (is_login_page()) {
        wp_enqueue_style('custom-login', get_template_directory_uri() . '/css/custom-login.css');
    }
}
add_action('login_enqueue_scripts', 'custom_login_styles');

この例では、is_login_page 関数を使ってログイン画面や登録画面に特定のスタイルシートを読み込んでいます。

まとめ

WordPressでログイン画面や登録画面を判定する方法についてご紹介しました。is_admin 関数では対応できない特定のページの判定には、今回紹介した方法を活用してみてください。

制作のご相談・ご依頼はこちらから!

Author

WARACRO(ワラクロ)

2018年に起業し、Webデザイナー・WebディレクターとしてWordPress案件を中心にWeb制作のお仕事をしています。
このブログでは、Webサイト制作に関する情報をお届けしています。

Webデザイン学習におすすめの講座
To Top