怎么让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);
}  www.111cn.net
add_filter('sanitize_user', 'china_login', 10, 3);

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

时间: 2024-09-29 04:59:55

怎么让Wordpress 注册支持中文用户名的相关文章

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

解决wordpress不支持中文汉字用户名注册

搁置了好久的一个网站终于在昨天找到了一款适合的模板,也意味着最近可能要对那个网站动工了 然后一个小问题就是注册用户的时候不支持中文用户名,那个网站上打算互动的... SO 得想办法解决这个问题.. 其实也很简单上网搜索一下,中文的教程几乎是千篇一律地要修改WordPress的源文件formatting.php 至于怎么改呢?我也找到一段最简单的代码 将以下php代码复制到当前主题目录下的functions.php中, 就可以让WordPress支持使用中文用户名注册和登录了    代码如下 复制

WordPress不支持中文tag标签链接解决办法

首先,产生中文tag链接无法打开或者找不到博客文章的原因在于WordPress不支持中文的编码.那我们 就需要强制让WordPress能支持中文的编码形式,即UTF-8和GBK编码. 修改方法,首先修改WP-include中的classes.php文件(需要使用用专门的PHP编辑器工具,推荐 EditPlus),将第47行和第52行代码进行修改.  代码如下 复制代码 第47行原代码: $pathinfo = $_SERVER['PATH_INFO']; 替换为: $pathinfo = mb_

wordpress支持中文用户名注册的2种实现方法

之前写了一篇  代码如下 复制代码 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'

wordpress中文用户名登录(用户名不能用中文)

wordpress不能注册中文用户名 我们可以通过做如下的修改来实现让wordpress允许使用中文用户名登录: 1.打开wp-includes/formatting.php文件 2.找到 function sanitize_user( $username, $strict = false ) {3.在紧接着下一行增加 $strict = false;通过简单的三部曲即可实现该功能,原理也很简单,强制使$strict = false,这样wordpress注册或修改用户名时就不会对用户名字符进行

jquery 用户名验证(支持中文字母)

  <!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"> <html xmlns="http://www.111cn.net/ 1999/xhtml"> <head> <meta http-equiv="co

gdal中文乱码-GDAL11.1版本不支持中文路径,读取shp文件属性字段出现乱码

问题描述 GDAL11.1版本不支持中文路径,读取shp文件属性字段出现乱码 首先读取带有中文路径的shp文件,代码如下: string strShpFullName = @"G:学习资料ArcGIS空间数据ATShpBoundaryChina_Boundary.shp"; //注册Ogr Ogr.RegisterAll(); OSGeo.GDAL.Gdal.SetConfigOption("GDAL_FILENAME_IS_UTF8", "NO"

邮件服务器-邮件用户名使用中文用户名可能吗?

问题描述 邮件用户名使用中文用户名可能吗? 如题,搭建了个邮件服务器,老板要求能让用户使用中文用户名,但是这个理论能做到吗?以前网易貌似尝试过,结局咋样 解决方案 理论上可以,但是这个用户要冒着无法接收来自大部分邮件服务器的邮件和发不出邮件到大部分邮件服务器的风险. 解决方案二: 就像以前有中文域名,于是很多人脑子一热就搞了一个,然后就呵呵了.反正你的工资是你老板开的,他让搞你就搞呗. 解决方案三: 跟你老板说,用中文用户名使用不稳定,你发的邮件对方有可能拒收,别人给你发邮件也有可能发不出来.

php用户注册过滤中文用户名方法

php教程用户注册过滤中文用户名,在很多开发中,用户名是不允许中文名字的,所以我们今天做个实例,限制中文名注册,在php中我们可以利用正则表达式来限制中文名如preg_match("/^[".chr(0xa1)."-".chr(0xff)."]+$/"了,下面看实例. <?php header("Content-type:text/html;charset=gb2312"); require_once('inc/conn