乌徒帮技术范儿WordPressWordPress开发 › wordpress中文用户名登录

wordpress中文用户名登录

分类:WordPress开发

用email登录你的wordpress一文中,我们分享了一种使用email登陆wordpress博客的方法,但即使这样,我们仍然面临一个问题,即如果我们的博客原本使用了社交账户登录的插件,在取消使用插件之后,这些以中文用户名存在于我们博客数据库中的用户就无法登录了。我们可以通过做如下的修改来实现让wordpress允许使用中文用户名登录:

1、打开wp-includes/formatting.php文件

2、找到

function sanitize_user( $username, $strict = false ) {

3、在紧接着下一行增加

$strict = false;

通过简单的三部曲即可实现该功能,原理也很简单,强制使$strict = false,这样wordpress注册或修改用户名时就不会对用户名字符进行严格的处理,中文用户名可以正常使用。[ad]

但是,需要注意的是:

  1. 安全性问题:如果任何字符串都可以注册为用户名,是否会对自己的网站构成威胁?
  2. 升级后覆盖问题:如果你升级wordpress,wp-includes/formatting.php文件会被升级文件覆盖,你需要重新修改这个地方,否则新的用户可能无法再使用中文用户名,而原本的中文用户名可能也会遇到修改信息、登录等麻烦。

如果你遇到新的解决办法,请及时分享,让更多的朋友来关注这个问题。

今天看露兜的文章,发现了新的方法,上面这种方法在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);

将这段代码放到你的主题functions.php或相关的插件文件中即可。

填写个人信息,赶快回复吧!