是否可以将WordPress用户名设为电子邮件地址?
因此可以隐藏或不需要unername,并将其替换为电子邮件地址。
我知道有些插件可以让用户使用他们的电子邮件作为登录,但他们仍然必须在注册时输入用户名。我想尝试取消用户名。
答案 0 :(得分:8)
我知道这个帖子已经超过一年了,但我刚刚测试了创建一个帐户,其中用户名是一个电子邮件地址,并且它可以工作。理论上,您可以创建一个前端注册表单,将电子邮件变量保存到数据库中的用户名和电子邮件字段。
WordPress允许用户名包含一些特殊字符,因此这是一种完全有效的方式来签名:http://codex.wordpress.org/Function_Reference/sanitize_user
答案 1 :(得分:6)
是的可能。即使您可以使用仅电子邮件将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
});
步骤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);
步骤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'];
}
});
还有一个插件可以实现此功能。
答案 2 :(得分:4)
用户名是WordPress数据库和哲学中的核心实体,不能像这样被绕过。现在,如果您想让用户使用他们的电子邮件登录,请使用此插件:http://wordpress.org/extend/plugins/wp-email-login/它允许您使用电子邮件/通行证或用户名/通行证登录。发现它像一个月前,像一个魅力。
即使使用其他方式进行注册和登录(Facebook,Twitter和Google)的插件也会创建一个用户名(例如,我尝试过的一个插件会创建像fbX这样的用户名,其中X是facebook ID。不幸的是,这不是我们的事情。可以解决。
希望这有帮助! :)