更新: 
ログイン、登録、およびメールでパスワードを取得するためのプラグインを作成しました。https://wordpress.org/plugins/smart-wp-login/
要するに、メールでログインするようにWordPressを設定できます。
3つのステップ:
- デフォルトの認証機能を削除
- カスタム認証機能を追加する
- wp-login.phpのテキスト「Username」を「Email」に変更します
1つの注:
WordPressのデフォルト認証機能を削除します。
WordPressは「認証」フィルターを使用して、ユーザーのログイン時に追加の検証を実行します。
remove_filter('authenticate', 'wp_authenticate_username_password', 20);
カスタム認証機能を追加する
add_filter('authenticate', function($user, $email, $password){
    //Check for empty fields
    if(empty($email) || empty ($password)){        
        //create new error object and add errors to it.
        $error = new WP_Error();
        if(empty($email)){ //No email
            $error->add('empty_username', __('<strong>ERROR</strong>: Email field is empty.'));
        }
        else if(!filter_var($email, FILTER_VALIDATE_EMAIL)){ //Invalid Email
            $error->add('invalid_username', __('<strong>ERROR</strong>: Email is invalid.'));
        }
        if(empty($password)){ //No password
            $error->add('empty_password', __('<strong>ERROR</strong>: Password field is empty.'));
        }
        return $error;
    }
    //Check if user exists in WordPress database
    $user = get_user_by('email', $email);
    //bad email
    if(!$user){
        $error = new WP_Error();
        $error->add('invalid', __('<strong>ERROR</strong>: Either the email or password you entered is invalid.'));
        return $error;
    }
    else{ //check password
        if(!wp_check_password($password, $user->user_pass, $user->ID)){ //bad password
            $error = new WP_Error();
            $error->add('invalid', __('<strong>ERROR</strong>: Either the email or password you entered is invalid.'));
            return $error;
        }else{
            return $user; //passed
        }
    }
}, 20, 3);
wp-login.phpのテキスト「Username」を「Email」に変更します
gettextフィルターを使用して、コアファイルを編集せずにテキスト「Username」を「Email」に変更できます。
add_filter('gettext', function($text){
    if(in_array($GLOBALS['pagenow'], array('wp-login.php'))){
        if('Username' == $text){
            return 'Email';
        }
    }
    return $text;
}, 20);
私のブログhttp://www.thebinary.in/blog/wordpress-login-using-email/にも詳細な記事を書いています。