wordpress注册是不是支持中文名字的如果我们要想让它支持中文名字我需要对内核程序进行一些简单的处理,下面一起来看看,我们找到代码如下:
- 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.Vevb.com
- add_filter('sanitize_user', 'china_login', 10, 3);
不过,需要注意的是,在下次升级的时候,还需要做同样的处理.
新闻热点
疑难解答
图片精选