性价比最高的香港ASP、PHP主机提供商
做网站,就上凡科建站

让WordPress支持用户名或邮箱登录

Loading
0
Comodo SLL证书促销 - 免费ssl证书申请_ssl证书购买_ev ssl证书_https证书购买 - GDCA_数安时代

允许你的WordPress站点通过用户名或邮箱登录,是提高用户体验的好方法,毕竟很多时候,用户不太记得自己注册的用户名。同时我们还要将默认的“用户名”修改为“用户名/邮箱”提示用户:

login-with-username-or-email-address-wpdaxue_com

将下面的代码添加到当前主题的 functions.php 文件即可

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
//让WordPress支持用户名或邮箱登录
function dr_email_login_authenticate( $user, $username, $password ) {
	if ( is_a( $user, 'WP_User' ) )
		return $user;
 
	if ( !empty( $username ) ) {
		$username = str_replace( '&', '&', stripslashes( $username ) );
		$user = get_user_by( 'email', $username );
		if ( isset( $user, $user->user_login, $user->user_status ) && 0 == (int) $user->user_status )
			$username = $user->user_login;
	}
 
	return wp_authenticate_username_password( null, $username, $password );
}
remove_filter( 'authenticate', 'wp_authenticate_username_password', 20, 3 );
add_filter( 'authenticate', 'dr_email_login_authenticate', 20, 3 );
 
//替换“用户名”为“用户名 / 邮箱”
function username_or_email_login() {
	if ( 'wp-login.php' != basename( $_SERVER['SCRIPT_NAME'] ) )
		return;
 
	?><script type="text/javascript">
	// Form Label
	if ( document.getElementById('loginform') )
		document.getElementById('loginform').childNodes[1].childNodes[1].childNodes[0].nodeValue = '<?php echo esc_js( __( '用户名/邮箱', 'email-login' ) ); ?>';
 
	// Error Messages
	if ( document.getElementById('login_error') )
		document.getElementById('login_error').innerHTML = document.getElementById('login_error').innerHTML.replace( '<?php echo esc_js( __( '用户名' ) ); ?>', '<?php echo esc_js( __( '用户名/邮箱' , 'email-login' ) ); ?>' );
	</script><?php
}
add_action( 'login_form', 'username_or_email_login' );

如果你不喜欢折腾代码,可以下载安装 WP Email Login 插件。

支付宝扫码打赏 微信打赏

如果文章对你有帮助,欢迎点击上方按钮打赏作者

MetInfo | 最适合企业网站建设的cms系统

关于 倡萌

一个疯狂的 WordPress 爱好者,喜欢折腾 WordPress 主题,分享 WordPress 资源。如果你也喜欢 WordPress,欢迎和我一起交流!

精彩推荐

WordPress 添加前端站内信 Cartpauj PM

WordPress 添加前端站内信 Cartpauj PM

WordPress 侧边栏 Ajax 无刷新用户登录/注册/修改密码

WordPress 侧边栏 Ajax 无刷新用户登录/注册/修改密码

18 条评论

  1. 大学应该加上,这个

  2. 测试成功了 厉害啊 再提问啊 要限制邮箱后缀 符合该后缀才可以登录 这个 该怎么实现呢?

  3. 这个好像不可以吧,我刚刚试了,没有改过来,是不是还需要改别的文件里的什么东西啊??

发表评论