1. 云栖社区>
  2. PHP教程>
  3. 正文

WordPress 主题制作技巧之三 [ 支持中文用户名登录 ]

作者:用户 来源:互联网 时间:2017-12-01 12:05:56

wordpress主题用户名

WordPress 主题制作技巧之三 [ 支持中文用户名登录 ] - 摘要: 本文讲的是WordPress 主题制作技巧之三 [ 支持中文用户名登录 ], 如果你也正在用wordpress作为博客或者企业网站,那么一定对这个用户页面并不陌生: Wordpress的强大地球上的人都清楚,但是从另一方面说,它有时候也会让我们感到繁杂。比如用户设置吧,从上面的图中就可以看到关于名称的设置就有“用

如果你也正在用wordpress作为博客或者企业网站,那么一定对这个用户页面并不陌生:

WordPress <a href=主题制作技巧之三 [ 支持中文用户名登录 ]">

Wordpress的强大地球上的人都清楚,但是从另一方面说,它有时候也会让我们感到繁杂。比如用户设置吧,从上面的图中就可以看到关于名称的设置就有“用户名”、“名”、“姓”、“昵称”、“公开显示名称”,除了“名”和“姓”可以不设置,另外三个都要设置

想用中文名作为“用户名”的用户可能会遇到这样的问题:当以中文字符注册时,系统提示错误:

WordPress 主题制作技巧之三 [ 支持中文用户名登录 ]

如今连域名都支持中文字符了,wordpress这么流行的东西居然还不支持中文用户名,实在有点说不过去,毕竟现实中确实存在这方面的需求。好在我们可以通过修改系统函数让其支持中文用户名。控制注册字符的函数是在wp_includes/formatting.php中定义的sanitize_user,代码如下

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( '/&.+?;/', '', $username ); // Kill entities    // If strict, reduce to ASCII for max portability.    if ( $strict )        $username = preg_replace( '|[^a-z0-9 _./[email protected]]|i', '', $username );    // Consolidate contiguous whitespace    $username = preg_replace( '|/s+|', ' ', $username );    return apply_filters( 'sanitize_user', $username, $raw_username, $strict );}

这个函数之所以能够控制中文字符的注册,是因为系统中用户名的注册和修改函数(wp-includes/user.php中的validate_username和wp_insert_user)在执行时引用了sanitize_user函数,并且将sanitize_user函数的第二个参数的值置为“true”,这样sanitize_user函数中的

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

也因此屏蔽了uername字符串中字母和数字以外的字符。所以要想让username支持中文,有两种方法:

1)在sanitize_user函数注释掉 if 语句;
2)在用户名注册和修改函数调用sanitize_user时将第二个参数值置为“false”。

这样就OK了,不过如果没有中文用户名注册需求的话,还是建议不要修改wordpress的系统函数。 

 

以上是云栖社区小编为您精心准备的的内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索的 , wordpress , 主题 用户名 ,以便于您获取更多的相关知识。

弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率

40+云计算产品,6个月免费体验

现在注册,免费体验40+云产品,及域名优惠!

云服务器9.9元/月,大学必备
Kubernetes上基于Istio体验云原生应用实践 资料下载