我们找到
代码如下 | 复制代码 |
sanitize_user在wp_includes/formatting.php中定义,其函数体如下: function sanitize_user( $username, $strict = false ) { // If strict, reduce to ASCII for max portability. // Consolidate contiguous whitespace return apply_filters( 'sanitize_user', $username, $r |
这样,我们简单地在第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.111cn.net add_filter('sanitize_user', 'china_login', 10, 3); |
不过,需要注意的是,在下次升级的时候,还需要做同样的处理。