[み]WordPressでユーザー名でもメールアドレスでもログインできるようにする方法

こんにちわ、WordPress推しのみはら(@masashi_385)です。今回紹介するのは、WordPressでユーザー名でもメールアドレスでもログインできるようにする方法です。ユーザー名ってけっこう忘れるので、メールアドレスでログインできたらすごく親切設計ですよね。ということで、プラグインを使ってやる方法と、functions.phpをごにょごにょしてやる方法の2つを紹介しますので、お好みにあわせて実装してください。

プラグイン「WP Email Login」

このプラグイン、名前がそのまんまですね。どうみても、WordPressにメールアドレスでログインするプラグインですね。使い方も特にハマるようなところも無く、問題なく使えるんじゃないでしょうか?もし、日本語で使いたいという方は、かちびと.netさんで日本語化ファイルを配布していますので、そちらでダウンロードしてください。日本語化ファイルは、解凍してWP Email LoginのフォルダにコピペすればOKです。
ユーザーIDでも登録したメールアドレスでもログイン出来るようにするWordPressプラグイン・WP Email Login(と、日本語ファイル) – かちびと.net

functions.phphで

次は、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()っていうみたことないような関数がありますね。これは、ユーザー情報を検索してマッチしたユーザー名を返す関数だそうです。これを使えば、メールアドレスだけでなく、ユーザーIDやユーザースラッグでもログインできるようにすることができます。

ここまでで、メールアドレスでもログインできるようになりましたが、せっかくなので、ログイン画面のテキストも変更して、メールアドレスでログインできる事を表示しましょう。ということで、次のコードをfunctions.phpに追加します。

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' );

「ユーザー名 か メールアドレス」のところは、好きなように弄ってください。「メールアドレス」だけにしておくと、ユーザー名ではログインできない風に見えますね。まぁ、見えるだけで、実際にはユーザー名でログインできけどねw

シェアありがとうございます

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

commentYour Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

checkboxみはら.comはエックスサーバーです

editNEW エントリー

PAGE TOP arrowup