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. Y a-t-il un résumé dans le codex ou quelque part qui explique quels caractères sont autorisés et pourquoi il a été restreint à cet ensemble ou est-ce uniquement des alphas et le suce-t-il?

Si je veux que les utilisateurs utilisent autre chose qu'un nom d'utilisateur sans espaces, ma seule véritable option est-elle un plugin qui permet aux utilisateurs de se connecter avec leur adresse e-mail à la place, 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.

Réponses:


7

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

Le mode strict n'autorise que ces caractères: a-z0-9<space>_.\-@

Cependant WP n'est pas par défaut en mode strict.

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


Cela a du sens, et pourtant mon installation multiple ne me permettra pas de créer des utilisateurs avec des espaces, @ ou. dans le nom. J'ai regardé formating.php et il semble autoriser @. et les espaces. Une idée d'où je devrais chercher pour comprendre ce qui empêche ces personnages? Je voudrais juste savoir pourquoi ils sont empêchés.
Purcell

3
C'est dans la fonction wpmu_validate_user_signup dans wp-includes / ms-functions.php, et oui, il n'autorise que les lettres et les chiffres. Certainement une chose multisite.
Otto

5

Je ne pense pas qu'il existe de documentation officielle à ce sujet, mais vous pouvez consulter la sanitize_userfonction 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 _.\-@]|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 par le vôtre.


Merci d'avoir signalé formating.php. Ma multi-installation ne me permettra pas de créer des utilisateurs avec des espaces, @ ou. dans le nom. J'ai regardé formating.php et il semble autoriser @. et les espaces. Une idée d'où je devrais chercher pour comprendre ce qui empêche ces personnages? Je voudrais juste savoir pourquoi ils sont empêchés.
Purcell
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.