Site icon Amelt.net

wordpressでログイン画面(wp-login.php)かどうか判定する方法

Amelt

Amelt

This post is also available in: 日本語 (Japanese)

wordpressを使っていて、ログインしている状態かどうかの判定は is_admin で判断できますが、ログイン画面(wp-login.php もしくは wp-register.php)を表示している状態かどうかを判定するコードは少し工夫する必要があります。

1.テーマファイルの function.php に下記のコードを加える。

以下のサンプルコードが、wordpressのログイン画面(wp-login.php もしくは wp-register.php)を表示している状態どうか判定する関数になります。
ログイン画面に wp-login.php だけでなく wp-register.php も含めるかどうかで、適宜サンプルコードを修正してください。

// check if current page is login-page or not
function is_login_page() {
    return in_array($GLOBALS['pagenow'], array('wp-login.php', 'wp-register.php'));
}

2.判定した結果により何かを行うコードを function.php に書く

wordpressのログイン画面(wp-login.php もしくは wp-register.php)を表示している状態をトリガーとして、何かしらの処理を行いたい場合には、以下のサンプルコードのようにアクションフックを用いることができます。

if ( !is_login_page() ) { // wp-login.php もしくは wp-register.php の画面でなかったら...
 add_action('somewhere','something');
}

参考:
http://stackoverflow.com/questions/5266945/wordpress-how-detect-if-current-page-is-the-login-page