用Email登录WordPress后台不是不可能

方法技巧 |  341人已阅 | 字体大小: 默认
本文共计1055个汉字和字符,阅读时长预计4分钟左右。


废话就不多说了,直接上代码,把下面的代码加入到模板函数functions.php文件中就大功告成了


// 修改WordPress用户名过滤机制,通过Email获取用户名
function chanbee_allow_email_login($username, $raw_username, $strict) {
  if (filter_var($raw_username, FILTER_VALIDATE_EMAIL)) {
    $user_data = get_user_by('email', $raw_username);
    
    if (empty($user_data))
      wp_die(__('<strong>ERROR</strong>: There is no user registered with that email address.'), '用户名不正确');
    else
      return $user_data->user_login;
  }
  else {
    return $username;
  }
}

// 修改登录界面的文字,"用户名"改成"用户名或邮箱"
function chanbee_change_text() {
  echo '<script type="text/javascript">
                var user_login_node = document.getElementById("user_login");
                var old_username_text = user_login_node.parentNode.innerHTML;
                user_login_node.parentNode.innerHTML = old_username_text.replace(/用户名/, "用户名或邮箱");
      </script>';
}

if (in_array($GLOBALS['pagenow'], array('wp-login.php')) && strpos($_SERVER['REQUEST_URI'], '?action=register') === FALSE && strpos($_SERVER['REQUEST_URI'], '?action=lostpassword') === FALSE && strpos($_SERVER['REQUEST_URI'], '?action=rp') === FALSE ) {
  add_filter('sanitize_user', 'chanbee_allow_email_login', 10, 3);
  add_action('login_footer', 'chanbee_change_text');
}

回过头想想,为什么要输入冗长的email来登录呢?用用户名登录不快捷点吗!?这功能还是给有需求的人用吧。

如需转载或复制本文请附带上 本文超链接 并注明出处: CHANBEE
本文标题: 用Email登录WordPress后台不是不可能
本文链接: https://www.chanbee.com/its-not-impossible-to-log-in-wordpress-backstage-with-email.html
发布日期: 2020-02-22
您可以分享本文到以下社交:

上一篇:

下一篇:

相关文章推荐

  • 给WordPress文章列表页任意文章之间插入任何内容

  • 告诉你如何给WordPress某个类目下的所有文章加上密码

  • 让WordPress后台文章列表按最新修改来排序

  • 如何让WordPress搜索框只搜索特定分类下的文章呢

  • 返回
    顶部