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

Eu adoraria poder usar espaços em nomes de usuários, mas isso não parece possível. Existe um write-up no códice ou em algum lugar que explica quais caracteres são permitidos e por que ele foi restrito a esse conjunto ou é apenas alfas somente e sugam 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 plugin que permite aos usuários fazer o login com seus endereços de e-mail, mas ainda requer um nome de usuário alfa somente na criação da conta?

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

Solutions Collecting From Web of "Onde posso encontrar documentação sobre quais caracteres são permitidos nos nomes de usuário e por quê?"

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 só permite esses caracteres: a-z0-9_.\-@

No entanto, o WP não é padrão para o modo estrito.

Agora, o multisite tem restrições diferentes, e pode retirar espaços lá. Isso ocorre porque os nomes de usuários são usados ​​para criar blogs independentes e, por exemplo, em instalações multisite.

Eu não acho que haja documentação oficial sobre isso, mas você pode dar uma olhada na function 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 se conectar a essa function e replace o comportamento padrão pelo seu.