問題描述
我希望能夠在使用者名稱中使用空格,但這似乎不可能。在抄本或某個地方是否有一個寫法,可以解釋什麼字元是允許的,為什麼它被限制在該集合,或者它只是阿爾法只是吸吮?
如果我希望使用者使用除空格之外的其他使用者名稱,我唯一真正的選擇是允許使用者使用他們的電子郵件地址登入的外掛,但是在建立帳戶時仍然需要一個僅限 Alpha 的使用者名稱?
哦,我在 WPMU /網站上。
最佳解決方案
你可以使用使用者名稱的空格,沒問題。 wordpress.org 上的幾個使用者在其使用者名稱中有空格。
嚴格模式只允許這些字元:a-z0-9<space>_.-@
但是 WP 不會預設為嚴格模式。
現在,多站點有不同的限制,可能會在那裡剝離空間。這是因為使用者名稱被用於建立獨立的部落格,如在多站點安裝。
次佳解決方案
我不認為有任何官方檔案,但您可以看看 wp-includes/formatting.php 中的 sanitize_user 功能:
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 );
}
您可以掛接該功能,並用自己的方式覆蓋預設行為。
參考文獻
注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。