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

Last Updated: 2017년 02월 11일 | | 11개 댓글

워드프레스에서 회원 가입 시 기본적으로 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 개 댓글

Leave a Comment

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

    응답
    • 안녕하세요, 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 플러그인 사용중입니다.)

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

    응답