问题描述
我希望能够在用户名中使用空格,但这似乎不可能。在抄本或某个地方是否有一个写法,可以解释什么字符是允许的,为什么它被限制在该集合,或者它只是阿尔法只是吸吮?
如果我希望用户使用除空格之外的其他用户名,我唯一真正的选择是允许用户使用他们的电子邮件地址登录的插件,但是在创建帐户时仍然需要一个仅限 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 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。