好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

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

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

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);   }  HdhCmsTestphpfensi测试数据  add_filter( 'sanitize_user' ,  'china_login' , 10, 3); 

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

查看更多关于怎么让Wordpress 注册支持中文用户名 - WordPress的详细内容...

  阅读:54次