wordpress WordPressログインIDの大文字小文字区別 作成日: 2026年8月13日
WPはデフォルトではパスワードは大文字小文字区別があるが、IDにはない。
ログインIDにも大文字小文字区別すべき件があったのでそのコードを作った。
/*** ログイン時にユーザーID(ユーザー名)の大文字・小文字を厳密に判定する*/add_filter('authenticate', 'my_strict_username_case_check', 30, 3);
function my_strict_username_case_check($user, $username, $password) {// すでにエラーがある場合や、入力が空の場合はそのまま返すif (is_wp_error($user) || empty($username)) {return $user;}
// メールアドレスでのログイン時は処理をスキップ(ユーザー名入力時のみチェック)if (is_email($username)) {return $user;}
// 認証に成功したWP_Userオブジェクトが存在する場合if ($user instanceof WP_User) {// DBに登録されている正解のユーザー名 ($user->user_login) と// フォームに入力されたユーザー名 ($username) を厳密比較(===)if ($user->user_login !== $username) {return new WP_Error('invalid_username_case','<strong>エラー:</strong> ユーザー名またはパスワードが正しくありません。(大文字・小文字も区別されます)');}}
return $user;}
これは当方制作の「サーフィン大会運営・採点・ライブ配信システム」で必要だからだが、WPログインIDまで大文字小文字区別しマルチユーザーで使うことは普通無いとは思う。
まぁ知識としてあれば便利=備忘。