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

4

워드프레스에서 회원 가입 시 기본적으로 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라는 플러그인이 있습니다.

참고:

*일부 글에 제휴링크가 포함될 수 있습니다.기부를 통해 블로그 운영을 후원하실 수 있습니다.

Related Posts

댓글 4건
  1. 김희정

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

    1. Word

      안녕하세요?

      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 대신 이메일을 사용하도록 하는 유명 사이트도 많기 때문에 이 방법도 괜찮을 것 같습니다.

  2. Choo-youl Lee

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

    1. Word

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

      사용 중인 워드프레스 테마의 자식 테마(차일드 테마)가 설치되어 있나요? 그러면 자식 테마 내의 함수 파일에 입력하면 됩니다. 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/

댓글 남기기