Où puis-je trouver de la documentation sur les caractères autorisés dans les noms d'utilisateur et pourquoi?

11

J'aimerais pouvoir utiliser des espaces dans les noms d'utilisateur, mais cela ne semble pas possible. Existe-t-il un texte dans le codex ou à un endroit expliquant quels caractères sont autorisés et pourquoi il est limité à cet ensemble ou s'agit-il uniquement d'alphas et de foutaises?

Si je veux que les utilisateurs utilisent autre chose qu'un nom d'utilisateur sans espaces, ma seule véritable option est-elle un plug-in qui permet aux utilisateurs de se connecter avec leur adresse électronique, mais nécessite toujours un nom d'utilisateur alpha uniquement lors de la création du compte?

Oh, et je suis sur un site WPMU / réseau.

    
posée Purcell 05.07.2011 - 17:53

2 réponses

7

Vous pouvez utiliser des espaces dans les noms d'utilisateurs, pas de problème. Plusieurs utilisateurs de wordpress.org ont des espaces dans leurs noms d'utilisateurs.

Le mode strict autorise uniquement ces caractères: a-z0-9<space>_.\[email protected]

Cependant, WP ne passe pas par défaut en mode strict.

Maintenant, le multisite a différentes restrictions et il peut y supprimer des espaces. En effet, les noms d'utilisateur sont utilisés pour créer des blogs indépendants, notamment sur les installations multisites.

    
réponse donnée Otto 05.07.2011 - 19:05
5

Je ne pense pas qu'il existe de documentation officielle à ce sujet, mais vous pouvez consulter la fonction sanitize_user dans 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 _.\[email protected]]|i', '', $username );

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

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

Vous pouvez vous connecter à cette fonction et remplacer le comportement par défaut avec le vôtre.

    
réponse donnée mike23 05.07.2011 - 19:05

Lire d'autres questions sur les étiquettes