사용자 이름에 허용되는 문자와 그 이유에 대한 설명서는 어디서 찾을 수 있습니까?


11

사용자 이름에 공백을 사용할 수 있기를 원하지만 불가능한 것 같습니다. 코덱이나 어딘가에 어떤 문자가 허용되고 왜 그 세트로 제한되었는지 설명하거나 알파 만 있고 빨아 들일 수 있는지 설명하는 글이 있습니까?

사용자가 공백없이 사용자 이름 이외의 것을 사용하려면 내 유일한 옵션은 사용자가 대신 이메일 주소로 로그인 할 수 있지만 계정을 만들 때 여전히 알파 전용 사용자 이름이 필요한 플러그인입니까?

아, 저는 WPMU / 네트워크 사이트에 있습니다.

답변:


7

사용자 이름에 공백을 사용할 수 있습니다. 문제 없습니다. wordpress.org의 일부 사용자는 사용자 이름에 공백이 있습니다.

엄격 모드는 다음 문자 만 허용합니다. a-z0-9<space>_.\-@

그러나 WP는 기본적으로 엄격 모드가 아닙니다.

이제 다중 사이트에는 서로 다른 제한 사항이 있으며 공간이 제거 될 수 있습니다. 다중 사이트 설치시 사용자 이름을 사용하여 독립적 인 블로그를 작성하기 때문입니다.


의미가 있지만 다중 설치는 공백, @ 또는로 사용자를 만들 수 없습니다. 이름으로. format.php를 보았고 @ 허용하는 것으로 보입니다. 그리고 공백. 이 캐릭터들을 방해하는 것이 무엇인지 알아 내기 위해 어디에서 검색해야하는지에 대한 아이디어가 있습니까? 나는 왜 그들이 예방되는지 알고 싶습니다.
Purcell

3
wp-includes / ms-functions.php의 wpmu_validate_user_signup 함수에 있으며 문자와 숫자 만 허용합니다. 분명히 다중 사이트입니다.
Otto

5

그것에 대해 공식적인 문서는 없다고 생각하지만 다음 sanitize_user기능을 살펴볼 수 있습니다 wp-includes/formatting.php.

function sanitize_user( $username, $strict = false ) {
    $raw_username = $username;
    $username = wp_strip_all_tags( $username );
    $username = remove_accents( $username );
    // Kill octets
    $username = preg_replace( '|%([a-fA-F0-9][a-fA-F0-9])|', '', $username );
    $username = preg_replace( '/&.+?;/', '', $username ); // Kill entities

    // If strict, reduce to ASCII for max portability.
    if ( $strict )
        $username = preg_replace( '|[^a-z0-9 _.\-@]|i', '', $username );

    $username = trim( $username );
    // Consolidate contiguous whitespace
    $username = preg_replace( '|\s+|', ' ', $username );

    return apply_filters( 'sanitize_user', $username, $raw_username, $strict );
}

해당 기능에 연결하여 자신의 기본 동작을 무시할 수 있습니다.


format.php를 지적 해 주셔서 감사합니다. 다중 설치에서는 공백, @ 또는로 사용자를 만들 수 없습니다. 이름으로. format.php를 보았고 @ 허용하는 것으로 보입니다. 그리고 공백. 이 캐릭터들을 방해하는 것이 무엇인지 알아 내기 위해 어디에서 검색해야하는지에 대한 아이디어가 있습니까? 나는 왜 그들이 예방되는지 알고 싶습니다.
Purcell
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.