問題描述
我希望能夠在用户名中使用空格,但這似乎不可能。在抄本或某個地方是否有一個寫法,可以解釋什麼字符是允許的,為什麼它被限制在該集合,或者它只是阿爾法只是吸吮?
如果我希望用户使用除空格之外的其他用户名,我唯一真正的選擇是允許用户使用他們的電子郵件地址登錄的插件,但是在創建帳户時仍然需要一個僅限 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 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。