香港独立IP空间
香港php空间
美国php空间
域名注册

很早之前无忧主机小编分享过一篇文章:WordPress注册中文用户名方法,通过这篇文章的方法可以让WordPress站点通过中文用户名来注册。在一段时间用户的反馈来说,之前文章教程对用户名的过滤太少了,容易出现安全问题。任何事情都是循循渐进的,无论什么程序都是通过补丁来完善自己的不足,一步步将程序完美化。借鉴之前的文章和网上收集,本节无忧主机小编将给大家介绍一下WordPress支持中文用户名方法(升级版)。
之前文章原理介绍:借鉴wp-includes/formatting.php中sanitize_user函数的写法(php空间探针地址:php探针
WordPress支持中文用户名方法(升级版)操作方法如下:
将下列代码复制到当前主题目录下的functions.php中:

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);
}

$username = trim( $username );
// Consolidate contiguous whitespace
$username = preg_replace( '|\s+|', ' ', $username );

return $username;
}

add_filter ('sanitize_user', 'ludou_sanitize_user', 10, 3);

以上就是wordpress支持中文用户名的方法,希望可以帮助到大家。

无忧主机相关文章推荐阅读:
WORDPRESS后台文章如何按最后修改的时间排序
无忧主机精心推荐WORDPRESS安装插件让您的站点事半功倍
WORDPRESS在LINUX环境下不用插件实现XML地图的具体方法

本文地址:http://www.51php.com/wordpress/19993.html

喜欢本文或觉得本文对您有帮助,请分享给您的朋友 ^_^

阅读本文的人还阅读:


搜索技术文档