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

Sha*_*hae 3 email wordpress registration username

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

所以unername可以隐藏或不需要,并替换为电子邮件地址.

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

Chr*_*ndi 9

我知道这个帖子已经超过一年了,但我刚刚测试了创建一个帐户,其中用户名是一个电子邮件地址,它可以工作.理论上,您可以创建一个前端注册表单,将电子邮件变量保存到数据库中的用户名和电子邮件字段.

WordPress允许用户名具有一些特殊字符,因此这是一种完全有效的签名方式:http://codex.wordpress.org/Function_Reference/sanitize_user

  • 请注意,用户名有时会显示在DOM中(某些类用于评论等,取决于主题),因此通过使用电子邮件作为用户名,用户可以看到用户的电子邮件... (2认同)

Nis*_*mar 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
});
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/


Teo*_*kis 4

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

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

希望这可以帮助!:)