Sha*_*hae 3 email wordpress registration username
是否可以将WordPress用户名设为电子邮件地址?
所以unername可以隐藏或不需要,并替换为电子邮件地址.
我知道有些插件可以让用户使用他们的电子邮件作为登录,但他们仍然必须在注册时输入用户名.我想尝试取消用户名.
我知道这个帖子已经超过一年了,但我刚刚测试了创建一个帐户,其中用户名是一个电子邮件地址,它可以工作.理论上,您可以创建一个前端注册表单,将电子邮件变量保存到数据库中的用户名和电子邮件字段.
WordPress允许用户名具有一些特殊字符,因此这是一种完全有效的签名方式:http://codex.wordpress.org/Function_Reference/sanitize_user
是的,这是可能的.即使您可以使用仅限电子邮件将WordPress配置为登录,注册和检索密码.
您可以将以下代码放在主题的functions.php文件中.
步骤1:删除用户名文本字段
add_action('login_head', function(){
?>
<style>
#registerform > p:first-child{
display:none;
}
</style>
<script type="text/javascript" src="<?php echo site_url('/wp-includes/js/jquery/jquery.js'); ?>"></script>
<script type="text/javascript">
jQuery(document).ready(function($){
$('#registerform > p:first-child').css('display', 'none');
});
</script>
<?php
});
Run Code Online (Sandbox Code Playgroud)
步骤2:删除用户名错误
//Remove error for username, only show error for email only.
add_filter('registration_errors', function($wp_error, $sanitized_user_login, $user_email){
if(isset($wp_error->errors['empty_username'])){
unset($wp_error->errors['empty_username']);
}
if(isset($wp_error->errors['username_exists'])){
unset($wp_error->errors['username_exists']);
}
return $wp_error;
}, 10, 3);
Run Code Online (Sandbox Code Playgroud)
步骤3:操纵背景注册功能.
add_action('login_form_register', function(){
if(isset($_POST['user_login']) && isset($_POST['user_email']) && !empty($_POST['user_email'])){
$_POST['user_login'] = $_POST['user_email'];
}
});
Run Code Online (Sandbox Code Playgroud)
还有一个插件来实现此功能.
插件:https://wordpress.org/plugins/smart-wp-login/
用户名是 WordPress 数据库和哲学中的核心实体,不能像这样绕过。现在,如果您想让用户使用电子邮件登录,请使用此插件: http: //wordpress.org/extend/plugins/wp-email-login/它允许您使用电子邮件/密码或用户名/密码登录。一个月前发现的,效果很好。
即使使用其他注册和登录方式的插件(facebook、twitter 和 Google)也会创建一个用户名(例如,我尝试过的一个插件会创建像 fbX 这样的用户名,其中 X 是 facebook ID。不幸的是,这不是我们可以解决的问题。
希望这可以帮助!:)