• かちびと.net

    WordPressでユーザー名でもメールアドレスでもログイン出来るようにするスニペットコードのご紹介。簡単なコードで実現出来ます。

    Kudos for

    WordPress jQuery
  • About This

    Web制作に役立つTips、チュートリアル、、マーケティングに役立つ情報などのリソースをほぼ毎日配信しています。宜しければメモ代わりにご利用下さい。詳しい情報はAbout me またはhumans.txtをご覧下さい。

    Kachibito.net is a community-based website for web designers and developers. The site includes a popular weblog, a design gallery, a open source software, design tips, and the various web-news.

  • Links

WordPressでユーザー名でもメールアドレスでもログイン出来るようにするスニペットコード

スポンサーリンク

以前、同じ機能のプラグインをご紹介
したんですけど、もっと簡単なコード
で実装できるみたいなので改めて備忘
録。ログイン名を忘れてしまう方も
少なくないのでメールアドレスでも
ログイン出来ると親切ですね。

以前紹介したプラグインは下記になります。

ユーザーIDでも登録したメールアドレスでもログイン出来るようにするWordPressプラグイン・WP Email Login

今日のコードはもう少しシンプルなものになります。

コード

下記をfunctions.phpに追記します。

function login_with_email_address($username) {
        $user = get_user_by('email',$username);
        if(!empty($user->user_login))
                $username = $user->user_login;
        return $username;
}
add_action('wp_authenticate','login_with_email_address');

get_user_by()はユーザー情報の一部で検索してマッチしたユーザー名を返す関数です。これにメールアドレスを含める。wp_authenticateはログイン認証時に実行するアクションフックですね。

尚、検索出来るユーザー情報はID、ログイン名、メールアドレス、ユーザースラッグの4つです。

テキストも変更してあげる

メールアドレスでもログイン出来る旨をログインフォームに書いてあげないと意味が無いのでテキストを変更。

function change_username_text($text){
       if(in_array($GLOBALS['pagenow'], array('wp-login.php'))){
         if ($text == 'ユーザー名'){$text = 'ユーザー名 又は メールアドレス';}
            }
                return $text;
         }
add_filter( 'gettext', 'change_username_text' );

メールアドレスだけにしたい場合は・・IDでログインできないようにするのは危険なので以下のようにして逃げる方が安全ですね。

 if ($text == 'ユーザー名'){$text = 'メールアドレス';}

動作テスト


メールアドレスでログイン出来ました。※キャプチャはダミーアドレスです

via:bavotasan

URL :
TRB :

Comments & Trackbacks (1)

Twitter

Web制作に役立つそうなリソースを独断と好みで配信しています。

かちびと.netにリンクの無いトラックバックはお受けいていません。
コメントされる前にガイドラインをご覧下さい。

twitter facebook rss contact

Ads

Posts

Contact

Services