WordPress不能注册中文用户名

来自:互联网
时间:2018-08-29
阅读:

wordpress博客默认是不支持注册中文用户名的,无论是用户前台注册,还是你在后台添加,只要包含了中文,他就会提示“此用户名包含无效字符”。解决这类问题无非是修改代码或是使用插件。不过最好的办法是修改主题,这样就不用担心WordPress升级导致覆盖修改文件了。

修改代码

打开wp-includes目录下的formatting.php文件,搜索“function sanitize_user( $username, $strict = false )”在其下面增加代码“$strict = false;”

function sanitize_user( $username, $strict = false ) {
    $strict = false;//解决无法注册中文用户名问题
    $raw_username = $username;
    $username = wp_strip_all_tags( $username );
    $username = remove_accents( $username );

修改代码解决问题的缺点是,每次WordPress升级之后,需要再次操作一遍。

修改主题

鉴于WordPress如此频繁的更新频率,修改源文件是极其不理智的做法,下次更新又得重新修改。WordPress提供了那么丰富的filter和action,何不加以利用呢?

下面是我从WordPress Answers上搜索到的方法,将以下php代码复制到当前主题目录下的functions.php中,即可让WordPress支持使用中文用户名注册和登录:

function uctheme_non_strict_login( $username, $raw_username, $strict ) {
if( !$strict )
return $username;
return sanitize_user(stripslashes($raw_username), false);
}
add_filter('sanitize_user', 'uctheme_non_strict_login', 10, 3);
返回顶部
顶部