wordpress支持中文用户名注册的2种实现方法
发布:smiling 来源: PHP粉丝网 添加日期:2014-11-21 13:32:19 浏览: 评论:0
wordpress是不支持中文名字注册的如果你要增加中文注册是需要在注册判断或登录处进行二次开发了,具体如下.
之前写了一篇,代码如下:
- function ludou_non_strict_login( $username, $raw_username, $strict ) {
- if( !$strict )
- return $username;
- return sanitize_user(stripslashes($raw_username), false);
- }
- add_filter('sanitize_user', 'ludou_non_strict_login', 10, 3);
现在回过头看了一下,这篇教程对用户名的过滤太少,容易出现安全问题,今天介绍新的方法,借鉴了wp-includes/formatting.php中sanitize_user函数的写法,同样是将以下php代码复制到当前主题目录下的functions.php中,即可让WordPress支持使用中文用户名注册和登录,代码如下:
- function ludou_sanitize_user ($username, $raw_username, $strict) {
- $username = wp_strip_all_tags( $raw_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
- // 网上很多教程都是直接将$strict赋值false,
- // 这样会绕过字符串检查,留下隐患
- if ($strict) {
- $username = preg_replace ('|[^a-z\p{Han}0-9 _.\-@]|iu', '', $username);//开源软件:phpfensi.com
- }
- $username = trim( $username );
- // Consolidate contiguous whitespace
- $username = preg_replace( '|\s+|', ' ', $username );
- return $username;
- }
- add_filter ('sanitize_user', 'ludou_sanitize_user', 10, 3);
增加到function.php文件中之后你就可以在wordpress注册中加中文名字了.
Tags: wordpress支持中文 wordpress注册
相关文章
- ·wordpress后台用户列表添加注册时间同时可注册时间排序(2014-11-21)
- ·WordPress中注册菜单与调用菜单的方法详解(2021-06-30)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)