シングルサイトでは問題のない「AAAA」のようなアルファベット大文字も弾かれます。
単純に下記の文字種制限がマルチサイト化で追加されています。
「ユーザー名にはアルファベット小文字の a-z と数字だけが含められます。」
こちらのマルチサイト環境だけの症状なのかWordPress上の仕様なのか判断つきかねてます。
マルチサイトを使用されている他の皆さんは上記の文字種制限はかかっていないでしょうか?
こんにちは、
wp-login.phpでユーザー名をサニタイズしているsanitize_user()という関数が、シングルとマルチサイトで、どんな風に動いているのかと思って、ちょっと遊んでみたのですが、
違うみたいですね、コードは追いかけていませんけど、なんか間違っていますかね?
ユーザー名に使用できる文字列 – WordPress Snippet
試したのは、ユーザーがログインする時のサニタイズ関数でしたが、
実際ユーザーを登録しようとすると、マルチサイトの場合、wpmu_validate_user_signup() (wp-includes/ms-functions.php)ではじかれるみたいなので、マルチサイトの仕様じゃないかと思います。
ご返信ありがとうございます。
シングルサイト時に作成したユーザーはマルチサイト化した後もユーザー名はメールアドレスのまま存在しており、ログインも問題なくできます。
問題なのはマルチサイトでWPユーザーを追加する時で、ユーザー名に文字種制限がかかり@や大文字アルファベットが含まれていると追加できません。
ご利用されているマルチサイトで、ユーザー名に@や大文字アルファベットが含まれていても正常にユーザーを追加できますでしょうか?
いま、前の記事編集しました。
実際にユーザー登録は出来ませんでした。
マルチサイトの場合、ユーザー名にはアルファベット小文字の a-z と数字だけが含められます
という事なんだと思います。
リンク先の記事、非公開に変更しました。
こんにちは
結論は@nobitaさんのおっしゃる通りのようです。
マルチサイトの時だけ
wpmu_validate_user_signup
という関数が呼び出されて独自のチェックが実行されています。
関数の接頭辞になっているWPMUについて私は良く知らないので経緯が分からないのですが、そういう仕様になっております、ということです。
皆さま、ご返信ありがとうございます。
なるほど、やはりユーザー名追加時の文字種制限はWordPressマルチサイトの仕様なのですね。
原因がわかり大変助かりました。
どうもありがとうございました!
解決済みですが
マルチサイトのユーザー名の制限を変えられるフィルターが用意されています。
関数 wpmu_validate_user_signup() の最後に下記のフィルターを通るので。
Home
違う目的の使い方ですがフィルターの使用例が下記サイトに出ています。
https://premium.wpmudev.org/forums/topic/how-can-i-give-a-deleted-user-a-new-signup-chance-in-multisite