Onde posso encontrar documentação sobre quais caracteres são permitidos em nomes de usuários e por quê?

11

Eu adoraria poder usar espaços em nomes de usuários, mas isso não parece possível. Existe um writeup no códice ou em algum lugar que explique quais caracteres são permitidos e por que ele estava restrito a esse conjunto ou é apenas alfas apenas e suga isso?

Se eu quiser que os usuários usem algo diferente de um nome de usuário sem espaços, minha única opção real é um plug-in que permita que os usuários façam login com seus endereços de e-mail, mas ainda exija um nome de usuário somente alfa na criação da conta?

Ah, e eu estou em um site de rede / WPMU.

    
por Purcell 05.07.2011 / 17:53

2 respostas

7

Você pode usar espaços em nomes de usuários, sem problemas. Vários usuários no wordpress.org têm espaços em seus nomes de usuários.

O modo estrito permite apenas esses caracteres: a-z0-9<space>_.\-@

No entanto, o WP não tem como padrão o modo estrito.

Agora, o multisite tem restrições diferentes e pode remover espaços. Isso ocorre porque os nomes de usuário são usados para criar blogs independentes e em instalações multisite.

    
por Otto 05.07.2011 / 19:05
5

Eu não acho que haja alguma documentação oficial sobre isso, mas você pode dar uma olhada na função sanitize_user em 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 );
}

Você poderia entrar nessa função e substituir o comportamento padrão por seu próprio.

    
por mike23 05.07.2011 / 19:05