워드프레스 회원 가입 시 사용자명(Username)에 한글 허용하기

워드프레스에서 회원 가입 시 기본적으로 Username(사용자명, 사용자 이름)에는 한글을 비롯한 비라틴어 문자가 허용되지 않습니다. 회원 등록 화면에서 "사용자명"에 한글을 입력해보면 아래와 같이 오류 메시지가 표시됩니다.

워드프레스 회원 가입 시 한글 사용자명 입력

"에러: 이 사용자명은 올바르지 않습니다. 올바른 사용자명을 입력하여 주십시오."라는 에러 메시지가 표시됩니다.

회원가입 시 사용자명에 한글을 허용하려면 다음 코드를 사용 중인 워드프레스 테마 함수 파일에 추가하도록 합니다.

/* 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

참조된 글이 조금 오래되었지만 코드를 테스트해보니 아직까지 잘 작동하는 것을 확인할 수 있었습니다.

워드프레스 회원 가입 시 한글 사용하기

참고로 이와 비슷한 기능을 하는 플러그인으로 러시아어, 키릴어, 아랍어를 사용자명(Username)에 사용할 수 있도록 허용하는 WordPress Special Characters in Usernames라는 플러그인이 있습니다.

참고:

일부 글에 제휴 링크가 포함될 수 있으며 파트너스 활동으로 일정액의 수수료를 받을 수 있습니다.

11개 댓글

  1. 내용대로 하니 한글 아이디가 만들어졌습니다.
    자료 감사합니다. 그런데 한글아이디 길이를 6글자 이상 긴것으로 사용할 수 있는 방법이 있을까요?

    1. 안녕하세요, nadana님.
      한글 아이디를 사용하는 것은 그리 권장하지 않습니다. 네이버 아이디 등 대부분의 아이디는 영숫자로 되어 있기 때문에 굳이 한글로 할 필요가 없지 않나 생각됩니다. 오히려 한글로 하면 더 이상하지 않을까요??

      질문의 내용에 대한 답변으로는, 아마도 username 필드의 DB 레코드 길이가 제한되어 있을 수 있습니다.

      1. DB를 백업하시고
      2. phpMyAdmin 등 DB에 접속하여
      3. 다음 SQL 쿼리를 실행하여 길이를 더 길게 할 수 있는지 체크해보시겠어요?

      ALTER TABLE wp_users MODIFY user_login VARCHAR(100);

      본래 user_login 필드의 데이터 값 길이가 60 characters일 것 같은데요. 위의 쿼리를 실행하면 길이가 100 characters로 늘어날 것입니다.

      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/

  2. 만약 username이 아닌 닉네임(nickname)을 설정하고 싶다면 어떻게 해야 할까요?
    알려주신 소스에서 username 을 그래도 nickname으로 변경하였으나 작동이 안되네요.ㅠ (ultimate member 플러그인 사용중입니다.)

    1. 국내 쇼핑몰에 가입할 때에는 사용자 이름(Username)은 영어와 숫자로만 지정하도록 하는 경우가 많기 때문에 username을 한글로 설정하려고 하는 것은 그다지 바람직하지 않을 것 같습니다.

      예를 들어, 지마켓에 회원가입하려고 하면 아이디에 영숫자로 6~10자로 설정할 것을 안내하고 있습니다.

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

      원하는 경우 "사용자 이름"을 "아이디"나 "ID"로 바꾸는 것을 고려해보시기 바랍니다.
      참고: https://www.thewordcracker.com/intermediate/how-to-change-username-to-id-in-wordpress-default-registration-or-login-form/

      닉네임(별명)은 한글로도 지정이 가능하지 않나요?

      1. username은 당연히 영문+숫자 로 해야 되는게 맞다고 생각합니다.

        닉네임은 한글 기입시,
        "사용자 이름에 잘못된 문자가 포함되어 있습니다"
        라고 출력시 되네요. [ultimate member 플러그인]

      2. 다음 글을 참고해보시기 바랍니다.

        https://avada.tistory.com/2515

        저는 테스트해보니 닉네임에 한글을 입력해도 문제가 발생하지 않았습니다. 문제가 발생한다면, 이전 댓글에서 언급했듯이 유효성 검사 항목에 조건이 지정되어 있지 않은지 확인해보시기 바랍니다.

  3. 안녕하세요.
    사용자명을 한글로 바꾸었습니다.
    근데, 로그인후 화면에 공개적으로 표시할 이름이 한글로 되어 있으면 한글자만 나오게 됩니다.
    영어로 하게 되면 나오구요
    예를 들어 test로 설정을 하면 'test'님으로 나오는데
    테스트로 하면 '테'님으로 나옵니다.
    이러한 것은 어떻게 해야 되나요?

    1. 안녕하세요?

      WordPress Special Characters in Usernames 플러그인을 사용해도 작동하지 않나요?

      사용자명은 영어로 가입하도록 하고 닉네임을 표시하도록 하는 것은 어떨까요?

      사용자명 대신 닉네임을 표시하는 방법을 생각해볼 수 있을 것 같습니다.

      // Change user Nickname
      function set_default_nick_name( $user_id ) {
      $user = get_userdata( $user_id );
      $name = 'LocalBeacon #10' . $user_id;
      $args = array(
      'ID' => $user_id,
      'nickname' => $name,
      'display_name' => $name
      );
      wp_update_user( $args );
      }
      add_action( 'user_register', 'set_default_nick_name' );

      그리고 보안을 위해 이메일로만 로그인하도록 제한하는 것이 안전할 것입니다.

      https://www.thewordcracker.com/basic/%EC%9B%8C%EB%93%9C%ED%94%84%EB%A0%88%EC%8A%A4%EC%97%90%EC%84%9C-%EC%9D%B4%EB%A9%94%EC%9D%BC-%EC%A3%BC%EC%86%8C%EB%A7%8C%EC%9D%84-%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC-%EB%A1%9C%EA%B7%B8%EC%9D%B8/

      요즘은 username 대신 이메일을 사용하도록 하는 유명 사이트도 많기 때문에 이 방법도 괜찮을 것 같습니다.

  4. 제가 구하던 답을 찾은것 같아요!
    혹시 테마의 어떤 파일에 위 코드를 추가했는지 알 수 있을까요?

    1. 안녕하세요?
      블로그를 방문해주셔서 감사합니다.

      사용 중인 워드프레스 테마의 자식 테마(차일드 테마)가 설치되어 있나요? 그러면 자식 테마 내의 함수 파일에 입력하면 됩니다. FTP 접속을 통해 수정하는 것이 좋습니다.

      https://www.thewordcracker.com/basic/how-to-add-custom-codes-to-wordpress/ 글을 참고해보세요.

      그리고 차일드 테마가 설치되어 있지 않다면 테마에서 제공하는 차일드 테마를 이용하여 설치하시고, 테마에서 별도로 제공하지 않는 경우에는 다음 글을 참고로 간단한 플러그인을 하나 설치하여 차일드 테마를 설치할 수 있습니다.

      https://www.thewordcracker.com/basic/%EC%9B%8C%EB%93%9C%ED%94%84%EB%A0%88%EC%8A%A4-%EC%9B%90%ED%81%B4%EB%A6%AD%EC%9C%BC%EB%A1%9C-%EA%B0%84%ED%8E%B8%ED%95%98%EA%B2%8C-%EC%B0%A8%EC%9D%BC%EB%93%9C-%ED%85%8C%EB%A7%88-%EC%9E%91%EC%84%B1/

댓글 남기기

* 이메일 정보는 공개되지 않습니다.