使WordPress用户名成为电子邮件地址

时间:2012-01-18 20:03:04

标签: wordpress email registration username

是否可以将WordPress用户名设为电子邮件地址?

因此可以隐藏或不需要unername,并将其替换为电子邮件地址。

我知道有些插件可以让用户使用他们的电子邮件作为登录,但他们仍然必须在注册时输入用户名。我想尝试取消用户名。

3 个答案:

答案 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'];
    }
});

还有一个插件可以实现此功能。

插件:https://wordpress.org/plugins/smart-wp-login/

答案 2 :(得分:4)

用户名是WordPress数据库和哲学中的核心实体,不能像这样被绕过。现在,如果您想让用户使用他们的电子邮件登录,请使用此插件:http://wordpress.org/extend/plugins/wp-email-login/它允许您使用电子邮件/通行证或用户名/通行证登录。发现它像一个月前,像一个魅力。

即使使用其他方式进行注册和登录(Facebook,Twitter和Google)的插件也会创建一个用户名(例如,我尝试过的一个插件会创建像fbX这样的用户名,其中X是facebook ID。不幸的是,这不是我们的事情。可以解决。

希望这有帮助! :)