Di mana saya dapat menemukan dokumentasi tentang karakter apa yang diizinkan dalam nama pengguna dan mengapa?

11

Saya ingin sekali dapat menggunakan spasi di nama pengguna, tetapi ini sepertinya tidak mungkin. Apakah ada Langgan dalam kodeks atau di suatu tempat yang menjelaskan karakter apa yang diperbolehkan dan mengapa dibatasi untuk set itu atau hanya alfas saja dan menyedotnya?

Jika saya ingin pengguna menggunakan sesuatu selain nama pengguna tanpa spasi, apakah satu-satunya pilihan nyata saya adalah plugin yang memungkinkan pengguna untuk masuk dengan alamat email mereka, tetapi masih memerlukan nama pengguna hanya alpha pada pembuatan akun?

Oh, dan saya di situs WPMU / jaringan.

Purcell
sumber

Jawaban:

7

Anda dapat menggunakan spasi di nama pengguna, tidak ada masalah. Beberapa pengguna di wordpress.org memiliki spasi di nama pengguna mereka.

Mode ketat hanya memungkinkan karakter ini: a-z0-9<space>_.\-@

Namun WP tidak default ke mode ketat.

Sekarang, multisite memiliki batasan yang berbeda, dan mungkin menghapus ruang di sana. Ini karena nama pengguna digunakan untuk membuat blog independen dan semacamnya pada pemasangan multisite.

Otto
sumber
Masuk akal, namun multi instal saya tidak akan memungkinkan saya untuk membuat pengguna dengan spasi, @, atau. dalam nama. Saya melihat formatting.php dan itu muncul untuk mengizinkan @. dan spasi. Tahu di mana saya harus mencari untuk mencari tahu apa yang mencegah karakter ini? Saya hanya ingin tahu mengapa mereka dicegah.
Purcell
3
Ada dalam fungsi wpmu_validate_user_signup di wp-include / ms-functions.php, dan ya, itu hanya memungkinkan huruf dan angka. Pasti hal yang multisite.
Otto
5

Saya tidak berpikir ada dokumentasi resmi tentang itu, tetapi Anda dapat melihat sanitize_userfungsinya di 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 );
}

Anda bisa menghubungkan ke fungsi itu dan mengganti perilaku default dengan Anda sendiri.

mike23
sumber
Terima kasih telah menunjukkan formatting.php. Multi instal saya tidak akan memungkinkan saya untuk membuat pengguna dengan spasi, @, atau. dalam nama. Saya melihat formatting.php dan itu muncul untuk mengizinkan @. dan spasi. Tahu di mana saya harus mencari untuk mencari tahu apa yang mencegah karakter ini? Saya hanya ingin tahu mengapa mereka dicegah.
Purcell