it-swarm.com.de

Wo finde ich eine Dokumentation darüber, welche Zeichen in Benutzernamen zulässig sind und warum?

Ich würde gerne Leerzeichen in Benutzernamen verwenden können, aber dies scheint nicht möglich zu sein. Gibt es eine Beschreibung im Codex oder irgendwo, die erklärt, welche Zeichen erlaubt sind und warum sie auf diese Menge beschränkt waren, oder handelt es sich nur um Alphas und saugen sie auf?

Wenn ich möchte, dass Benutzer etwas anderes als einen Benutzernamen ohne Leerzeichen verwenden, ist meine einzige echte Option ein Plugin, mit dem Benutzer sich stattdessen mit ihren E-Mail-Adressen anmelden können, bei der Kontoerstellung jedoch immer noch einen Benutzernamen nur für Alpha-Zeichen benötigen?

Oh, und ich bin auf einer WPMU/Netzwerkseite.

11
Purcell

Sie können Leerzeichen in Benutzernamen verwenden, kein Problem. Mehrere Benutzer auf wordpress.org haben Leerzeichen in ihren Benutzernamen.

Im strengen Modus sind nur die folgenden Zeichen zulässig: a-z0-9<space>_.\[email protected]

Allerdings ist WP nicht standardmäßig auf den strengen Modus eingestellt.

Multisite unterliegt nun unterschiedlichen Einschränkungen und kann dort Leerzeichen entfernen. Dies liegt daran, dass Benutzernamen verwendet werden, um unabhängige Blogs und dergleichen bei Installationen mit mehreren Standorten zu erstellen.

7
Otto

Ich glaube, es gibt keine offizielle Dokumentation dazu, aber Sie können sich die sanitize_user -Funktion in wp-includes/formatting.php ansehen:

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 );
}

Sie können sich in diese Funktion einhängen und das Standardverhalten mit Ihrem eigenen überschreiben.

5
mike23