外贸独立站的底层设计密码WordPress 成品站模板
当前位置:首页>WordPress建站>用户交互>让WordPress支持用户名或邮箱登录

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

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

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

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

//让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 插件。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

给TA打赏
共{{data.count}}人
人已打赏
欢迎关注WordPress大学公众号 WPDAXUE
用户交互

禁用/移除WordPress页面的评论功能

2013-6-30 8:45:15

后台定制用户交互

WordPress根据用户角色隐藏文章/页面的功能模块(Meta Boxes)

2013-7-8 7:36:00

18 条回复 A文章作者 M管理员
  1. 白白

    標記標記!

  2. 大学应该加上,这个

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

    • 倡萌

      因为是想开发来给公司内部人员使用 所以想有这个限制 拥有符合后缀邮箱的用户 才可登录呐 :)

    • 那就要求他们在注册的时候,提示他们必须填写某些特定后缀的邮箱,否则无法登录

    • 倡萌

      想问 用户在哪…注册? ps: 我真的是一个菜鸟 = = #

    • 后台 > 设置 > 常规,勾选“任何人都可以注册”,然后在登录界面的底部就可以看到注册链接

    • 倡萌

      啊 bingo

    • 想到了 在注册的时候 就限制 注册 邮箱后缀,那么 该怎么实现呢?

    • 倡萌

      ao~ 那 自定义主页 该怎么实现呢?

    • 啥叫 自定义主页? 如果是说像 WP大学 的用户中心,那不是一两句话就可以实现的,也不是1000元能实现的

    • 倡萌

      就是想 按照我这个项目的需求 去设计网站主页~

    • 网络上有数以亿计的WordPress主题可用,如果都没法满足你,就自己制作,不会做就花钱请人做,没钱就找你老板,找老板不行就打劫

    • 倡萌

      我是公司的实习生啦 来的第一个学习任务啊 就是结合WP和Bootstrap 开发一个公司内部使用的CMS或者说是博客的东西啊 所以得自己折腾啊 == 还希望能得到您的支持 帮助

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

    • 多些反馈,已经修正

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索