WordPress 会員登録時にユーザー名(Username)にハングル許可する

Last Updated:2017年02月11日| 12のコメント

WordPressで会員登録時に、基本的にUsername(ユーザー名、ユーザー名)には、ハングルをはじめとする非ラテン文字ができません。 会員登録画面で、「ユーザー名」にハングルを入力してみると以下のようにエラーメッセージが表示されます。

WordPress 会員登録時に日本語のユーザー名を入力

「エラー:このユーザー名は正しくありません。正しいユーザー名を入力してください。」というエラーメッセージが表示されます。

会員登録時にユーザー名に日本語を許可するには、次のコードを使用している WordPress テーマ関数ファイルに追加するようにします。

/* Username에 비라틴어 문자 허용하기 */
add_filter('sanitize_user', 'non_strict_login', 10, 3);

function non_strict_login( $username, $raw_username, $strict ) {

if( !$strict )
return $username;

return sanitize_user(stripslashes($raw_username), false);
}
// Source: http://wordpress.stackexchange.com/questions/7328/allowing-non-latin-characters-in-registration

参照された記事が少し長くなったが、コードをテストしてみると、まだうまく動作することを確認することができました。

WordPress 会員登録時に日本語を使用する

参考までに、同様の機能をプラグインとしてロシア語、キリル語、アラビア語をユーザー名(Username)に使用できるようにする WordPress Special Characters in Usernamesというプラグインがあります。

メモ:


12のコメント

コメント

  1. 私は内容通りにしましたが、どうしてもいけません。 WordPressはハングル版ですよ アルティメットメンバーを使用しています。プラグインの種類を隠すのですか?テーマはヘスティアを書くが、他のテーマに変えるバーも同様です。会員登録時にユーザー名にぜひハングルを書きたいのですが方法がないでしょうか…ありがとうございます。

    応答
  2. 内容通りにするのでハングルIDが作られました。
    資料ありがとうございます。ところで、ハングルIDの長さを6文字以上長いものとして使用できる方法はありますか?

    応答
    • こんにちは、nadanaさん。
      ハングルIDを使用することはあまりお勧めできません。 Naver IDなどほとんどのIDは英数字になっているのであえてハングルにする必要がないかと思います。むしろハングルにすればもうならないでしょうか?

      質問の内容に対する回答としては、おそらく username フィールドの DB レコード長が制限されている可能性があります。

      1. DBをバックアップします
      2. phpMyAdminなどDBに接続して
      3.次のSQLクエリを実行して長さを長くできるかどうかを確認しますか?

      ALTER TABLE wp_users MODIFY user_login VARCHAR(100);

      元のuser_loginフィールドのデータ値の長さは60文字です。上記のクエリを実行すると、長さが100文字に増えます。

      wp_usersテーブル名は実際のテーブル名を変更してください。

      上記の方法で試してみて、エラーが発生したりうまくいかない場合は、バックアップコピーを使用してもう一度元に戻してください。バックアップはupdraftplusプラグインを使用すると便利です。

      https://www.thewordcracker.com/basic/db%EC%99%80-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%A5%BC-%EB%AA%A8%EB%91%90-%EB%B0%B1%EC%97%85%ED%95%98%EB%8A%94-%EB%B0%B1%EC%97%85-%EB%B3%B5%EC%9B%90-%ED%94%8C%EB%9F%AC%EA%B7%B8%EC%9D%B8-updraftplus/

      応答
  3. ユーザー名ではなくニックネームを設定したい場合はどうすればよいですか?
    お知らせいただいたソースから username をそれでも nickname に変更しましたが、動作しませんねㅠ(ultimate member プラグイン使用中です。

    応答
    • 国内ショッピングモールに加入する際には、ユーザー名(Username)は英語と数字でのみ指定するようにすることが多いので、usernameをハングルに設定しようとするのはあまり望ましくないようです。

      たとえば、ジマーケットに会員登録しようとすると、IDに英数字で6~10文字に設定することを案内しています。

      https://www.screencast.com/t/5sx4fBlo

      必要に応じて、「ユーザー名」を「ID」または「ID」に変更することを検討してください。
      メモ: https://www.thewordcracker.com/intermediate/how-to-change-username-to-id-in-wordpress-default-registration-or-login-form/

      ニックネーム(別名)はハングルでも指定ができませんか?

      応答
      • usernameは当然英文+数字でなければならないのが正しいと思います。

        ニックネームはハングル記入時、
        「ユーザー名に無効な文字が含まれています」
        と出力されますね。 [ultimate member プラグイン]

      • 次の記事を参考にしてください。

        https://avada.tistory.com/2515

        私はテストしてみるとニックネームにハングルを入力しても問題は発生しませんでした。 問題が発生した場合は、前のコメントで述べたように、検証項目に条件が指定されていないことを確認してください。

  4. こんにちは。
    ユーザー名をハングルで変えました。
    ところで、ログイン後の画面に公開される名前がハングルになっている場合、一字だけ出るようになります。
    英語ですると出てくるんです
    たとえば、testに設定すると、「test」になります。
    テストにすると「テ」さんに出ます。
    これらのことは、どうすればいいですか?

    応答
  5. 私求めた答えを見つけたと思う!
    もしテーマのいくつかのファイルに上記のコードを追加したことがわかりますか?

    応答