一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

怎么让Wordpress 注册支持中文用户名

时间:2014-03-20 编辑:简简单单 来源:一聚教程网

我们找到

 代码如下 复制代码

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( '/&.+?;/', '', $usernam
e ); // Kill entities

// If strict, reduce to ASCII for max portability.
if ( $strict )
$username = preg_replace( '|[^a-z0-9 _.-@]|i', '', $username );

// Consolidate contiguous whitespace
$username = preg_replace( '|s+|', ' ', $username );

return apply_filters( 'sanitize_user', $username, $r
aw_username, $strict );
}

这样,我们简单地在第746行前面加上//注释掉这个语句,就可以支持中文用户名了。当然,根据版本不同,你的不一定也是第746行。

把 $strict 强制指定为 false,即在 sanitize_user 这行函数的下一行添加如下代码

 代码如下 复制代码

$strict = false;

或者注释掉

//$username = preg_replace( '|[^a-z0-9 _.-@]|i', '', $username );

这样就一切OK了,但我们如果要对中文名字进行验证还需要如下操作

 代码如下 复制代码

//增加中文注册
function china_login( $username, $raw_username, $strict ) {
if( !$strict )
return $username;
return sanitize_user(stripslashes($raw_username), false);
www.111com.net
add_filter('sanitize_user', 'china_login', 10, 3);

不过,需要注意的是,在下次升级的时候,还需要做同样的处理。

热门栏目