मुझे उपयोगकर्ता नाम में कौन से वर्णों की अनुमति है और क्यों प्रलेखन मिल सकता है?


11

मुझे उपयोगकर्ता नाम में रिक्त स्थान का उपयोग करने में सक्षम होना पसंद है, लेकिन यह संभव नहीं लगता है। क्या कोडेक्स में कहीं लिखा हुआ है या कहीं और बताया गया है कि किन वर्णों को अनुमति दी गई है और यह उस सेट तक ही सीमित क्यों है या क्या यह केवल अल्फाज है और इसे चूसना है?

अगर मैं चाहता हूं कि उपयोगकर्ता बिना किसी रिक्त स्थान वाले उपयोगकर्ता नाम के अलावा कुछ का उपयोग करें, तो क्या मेरा एकमात्र वास्तविक विकल्प एक प्लगइन है जो उपयोगकर्ताओं को इसके बजाय उनके ईमेल पते के साथ लॉगिन करने की अनुमति देता है, लेकिन फिर भी खाता निर्माण के लिए एक अल्फा केवल उपयोगकर्ता नाम की आवश्यकता होती है?

ओह, और मैं एक WPMU / नेटवर्क साइट पर हूं।

जवाबों:


7

आप उपयोगकर्ता नाम में रिक्त स्थान का उपयोग कर सकते हैं, कोई समस्या नहीं है। Wordpress.org पर कई उपयोगकर्ताओं के उपयोगकर्ता नाम में स्थान हैं।

सख्त मोड केवल इन पात्रों की अनुमति देता है: a-z0-9<space>_.\-@

हालांकि WP सख्त मोड में डिफ़ॉल्ट नहीं है।

अब, मल्टीसाइट के पास अलग-अलग प्रतिबंध हैं, और यह वहां रिक्त स्थान छीन सकता है। ऐसा इसलिए है क्योंकि उपयोगकर्ता नाम का उपयोग स्वतंत्र ब्लॉग बनाने के लिए किया जाता है और जैसे मल्टीसाइट इंस्टाल पर।


समझ में आता है, और फिर भी मेरी बहु स्थापित मुझे रिक्त स्थान, @, या के साथ उपयोगकर्ताओं को बनाने की अनुमति नहीं देगी। नाम में। मैंने formatting.php को देखा और यह @ की अनुमति देता है। और रिक्त स्थान। किसी भी विचार से मुझे यह पता लगाना चाहिए कि इन पात्रों को रोकना क्या है? मैं सिर्फ यह जानना चाहूंगा कि उन्हें क्यों रोका जाता है।
पर्साल

3
यह फ़ंक्शन wpmu_validate_user_signup में wp-शामिल / ms-functions.php है, और हाँ, यह केवल अक्षरों और संख्याओं की अनुमति देता है। निश्चित रूप से एक मल्टीसाइट चीज़।
ओटो

5

मुझे नहीं लगता कि इसके बारे में कोई आधिकारिक दस्तावेज है, लेकिन आप इस sanitize_userकार्य को देख सकते हैं 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 );
}

आप उस फ़ंक्शन को हुक कर सकते हैं और अपने स्वयं के साथ डिफ़ॉल्ट व्यवहार को ओवरराइड कर सकते हैं।


स्वरूपण इंगित करने के लिए धन्यवाद। मेरी मल्टी इंस्टॉल मुझे स्पेस, @, या के साथ उपयोगकर्ता बनाने की अनुमति नहीं देगी। नाम में। मैंने formatting.php को देखा और यह @ की अनुमति देता है। और रिक्त स्थान। किसी भी विचार से मुझे यह पता लगाना चाहिए कि इन पात्रों को रोकना क्या है? मैं सिर्फ यह जानना चाहूंगा कि उन्हें क्यों रोका जाता है।
पर्साल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.