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