できないことはありませんが、ちゃんと考えておく必要があります。
まず、部分一致となるため、セキュリティ的にどうしても緩くなります。
また、レアケースかもしれませんが、次のようなケースにおいて、どうするかなども考えておく必要があります。
ケース1:入力文字列内に2ユーザーのアカウントが含まれている
ユーザー aaaaa
ユーザー bbbbb
入力ユーザー名 aaaaabbbbb
ケース2:あるユーザー名に他のユーザー名が包含されている
ユーザー aaaaa
ユーザー aaaaaa
入力ユーザー名 aaaaaabbb
プラグインの有無は存じ上げませんが、やり方としては、wp_authenticate アクションにフックして、入力された文字列から実在するユーザー名を割り出して、認証をかける方法になろうかと思います。
この目的は、ユーザ登録の手間の削減でしょうか?
だとしたら、bbb@aaa.comでログインしたユーザはbbb@aaa.comとして記事を作成したり更新したりする必要があるのではないでしょうか。
そのような場合、全員分のユーザ登録は避けられないように思いますが・・・
もしそうでないなら、aaa.comをユーザIDとして、これで全員がログインしてはダメなのでしょうか?
jim912さんのご回答で解決されるかもしれませんが、後学のために目的をお教えいただけませんでしょうか。
jim912様
ありがとうございます。
仰るとおり、セキュリティは緩くなってしまいます。
しかし、今回はそれでも実行したい理由がありました。
また、wp_authenticateにフックすべく試行錯誤してみましたが、
下記コードだったのですが、やはりダメですよね。記述方法全く違うような気がしてならないです。
どの部分の修正が必要かご教授お願いできないでしょうか?
function login_with_email_address($username) {
$user = get_user_by(‘email’,$username);
if (strstr($users, $user)) {
$username = $users->user_login;
return $username;
}
}
add_action(‘wp_authenticate’,’login_with_email_address’);
munyagu様
目的は他にも周知する人が多く、多岐に渡る会社の人に共有するため少し融通のきいた認証にしたいということもありました。