WordPressを使っていると、管理画面やサイトの表示状態を判定することが多いですよね。たとえば、現在ログインしているかどうかを判定するには is_admin
関数を使います。しかし、特定のページ、例えばログイン画面や登録画面を表示しているかどうかを判定するには、少し工夫が必要です。
ログイン画面や登録画面の判定方法
WordPressのログイン画面(wp-login.php
)や登録画面(wp-register.php
)を表示しているかどうかを判定するには、以下のようなコードを使用します。
方法1: global $pagenow
を使用する
まず、WordPressのグローバル変数 $pagenow
を使用する方法です。この変数は現在のページのファイル名を格納しています。
function is_login_page() {
global $pagenow;
return in_array($pagenow, array('wp-login.php', 'wp-register.php'));
}
if (is_login_page()) {
// ログイン画面または登録画面です
}
このコードでは、$pagenow
が wp-login.php
または wp-register.php
である場合に true
を返します。これにより、現在表示されているページがログイン画面または登録画面であるかどうかを簡単に判定できます。
方法2: $_SERVER['PHP_SELF']
を使用する
次に、サーバー変数 $_SERVER['PHP_SELF']
を使用する方法です。この変数は現在のスクリプトのパスを返します。
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をログイン画面または登録画面のみに適用することができます。
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
関数では対応できない特定のページの判定には、今回紹介した方法を活用してみてください。