Steamer Lane Studio技術備忘録WordPress

WordPressログインIDの大文字小文字区別

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まで大文字小文字区別しマルチユーザーで使うことは普通無いとは思う。

まぁ知識としてあれば便利=備忘。