网站地图    收藏   

主页 > 后端 > wordpress教程 >

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

来源:自学PHP网    时间:2014-11-28 23:42 作者: 阅读:

[导读] wordpress注册是不是支持中文名字的如果我们要想让它支持中文名字我需要对内核程序进行一些简单的处理,下面一起来看看,我们找到代码如下:sa...

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

wordpress注册是不是支持中文名字的如果我们要想让它支持中文名字我需要对内核程序进行一些简单的处理,下面一起来看看,我们找到代码如下:

  1. sanitize_user在wp_includes/formatting.php中定义,其函数体如下: 
  2. function sanitize_user( $username$strict = false ) { 
  3. $raw_username = $username
  4. $username = wp_strip_all_tags( $username ); 
  5. $username = remove_accents( $username ); 
  6. // Kill octets 
  7. $username = preg_replace( '|%([a-fA-F0-9][a-fA-F0 
  8. -9])|', '', $username ); 
  9. $username = preg_replace( '/&.+?;/'''$usernam 
  10. e ); // Kill entities 
  11. // If strict, reduce to ASCII for max portability. 
  12. if ( $strict ) 
  13. $username = preg_replace( '|[^a-z0-9 _.-@]|i'''$username ); 
  14. // Consolidate contiguous whitespace 
  15. $username = preg_replace( '|s+|'' '$username ); 
  16. return apply_filters( 'sanitize_user'$username$r 
  17. aw_username, $strict ); 

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

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

$strict = false;或者注释掉

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

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

  1. //增加中文注册 
  2. function china_login( $username$raw_username$strict ) {  
  3. if( !$strict )  
  4. return $username;  
  5. return sanitize_user(stripslashes($raw_username), false);  
  6. }  www.phpfensi.com 
  7. add_filter('sanitize_user''china_login', 10, 3); 

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

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论