×

让WordPress支持用Email登录

优畅主题 Wordpress技术 2013-08-30 14:15 3,567 0 条评论

众所周知,wordpress的登录页面只能使用用户名登录,除非安装了多说评论那样的社会化插件,才能让wordpress增加社会化登录功能。不过除了社会化登录,用户最习惯的应该是使用email邮箱登录吧。通常人们会很容易忘记自己注册网站时的用户名,但注册时用的邮箱却忘不掉,你会不会有同感呢?这样的话,我们不妨给wordpress增加一个使用email登录的功能。

这项功能不仅方便于容易忘事的wordpress站长,最重要的是能够大大提升会员制wordpress网站的用户体验。如果想让用户用Email也可以登录wp网站,那就将以下代码复制到当前主题的functions.php中。代码来自低调的wp高手露兜博客。

// 修改WordPress用户名过滤机制,通过Email获取用户名 
function ludou_allow_email_login($username, $raw_username, $strict) { 
 if (filter_var($raw_username, FILTER_VALIDATE_EMAIL)) { 
 $user_data = get_user_by('email', $raw_username); 
 
 if (emptyempty($user_data)) 
 wp_die(__('<strong>ERROR</strong>: There is no user registered with that email address.'), '用户名不正确'); 
 else 
 return sanitize_user($user_data->user_login, $strict); 
 } 
 else { 
 return $username; 
 } 
} 
 
// 修改登录界面的文字,"用户名"改成"用户名或邮箱" 
function ludou_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', 'ludou_allow_email_login', 10, 3); 
 add_action('login_footer', 'ludou_change_text'); 
}

注意:以上代码只对登录页面有效,效果如下:

让WordPress支持用Email登录


如果本文对你有帮助,你可以扫描右边的二维码打赏,谢谢支持
联系优畅:uctheme#qq.com (#改为@)
微信订阅号:优畅主题(uctheme)
官网淘宝店:http://uctheme.taobao.com
版权声明:版权归 优畅主题 所有,转载请注明出处!
转载请保留链接: https://www.uctheme.com/technical/479.html
谢谢支付宝打赏
谢谢微信打赏

品牌创立:2012-11-18优畅主题

优畅主题成立于2012年11月18日,专业Wordpress导购主题开发商,拥有多年Wordpress主题设计经验,专门为淘宝客和导购客站长量身打造高端赚钱模板,我们注重细节,有着严谨的开发态度,一切从客户角度出发,如果你也喜欢 WordPress导购主题,欢迎和我们一起交流!


8 + 1 = ?

目前还没有评。

切换注册

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

切换登录

注册