wordpress收费下载资源主题
wordpress付费下载资源插件

WordPress 支持中文用户名注册

将以下php代码复制到当前主题目录下的functions.php中,即可让WordPress支持使用中文用户名注册和登录:

function MBT_sanitize_user ($username, $raw_username, $strict) {
 $username = wp_strip_all_tags( $raw_username );
 $username = remove_accents( $username );
 $username = preg_replace( '|%([a-fA-F0-9][a-fA-F0-9])|', '', $username );
 $username = preg_replace( '/&.+?;/', '', $username ); 
 if ($strict) {
 $username = preg_replace ('|[^a-z\p{Han}0-9 _.\-@]|iu', '', $username);
 }
 $username = trim( $username );
 $username = preg_replace( '|\s+|', ' ', $username );
 return $username;
}
add_filter ('sanitize_user', 'MBT_sanitize_user', 10, 3);

使用此方法仅允许最多5个中文汉字,那要注册6个及以上的中文用户名怎么办?

还需要修改数据库里面两个字段的长度,分别修改user_login\user_nicename,注意两个要同时修改,参考display_name改为250即可。

可使用代码修改长度,可以将以下代码加入到主题启用后的钩子里,例如after_switch_theme,通过add_action来添加。

$update1="ALTER TABLE `".$wpdb->users."` modify column user_login varchar(250), modify column user_nicename varchar(250)";
$wpdb->query($update1);

目前也没搞清为啥wordpress会限制中文数量为5个,尽管数据库中相关字符长度明明是VARCHAR60,而在UTF8下一个汉字应该是3个字符,可仍然不行,只能按上述的方法改为250或更大。

0 个评论

定制开发
本站承接WordPress等系统建站仿站、二次开发、主题插件定制等开发服务
在线咨询
  • 请直接说明需求,勿问在否
    QQ:1-247-246-247

  • QQ一群:104228692(满)
  • QQ二群:64786792
在线咨询
本站承接WordPress建站仿站、二次开发、主题插件定制等PHP开发服务!

了解详情