Как изменить авторизацию по email в WordPress

В стандартной установке WordPress для входа в админ-панель требуется вводить логин и пароль пользователя. Иногда возникает необходимость упростить или изменить процесс авторизации, например, используя email вместо логина. Это удобно, если пользователи легче запоминают email, или если на сайте много пользователей с похожими именами.

Почему стоит использовать email для входа в WordPress

Использование email для авторизации повышает удобство для пользователей. Email обычно уникален и легко запоминается. Это снижает количество ошибок при вводе логина и облегчает поддержку пользователей.

Кроме того, использование email упрощает интеграцию с внешними системами, где email — основной идентификатор.

Однако, стандартный функционал WordPress не поддерживает авторизацию по email из коробки. Для этого нужно либо использовать плагины, либо написать кастомное решение.

Использование плагинов для авторизации по email

Для реализации авторизации по email можно использовать готовые плагины. Вот несколько популярных вариантов:

  • WP Email Login — бесплатный плагин, который позволяет входить по email вместо логина. Прост в установке и настройке.
  • Email Login — плагин с дополнительными возможностями, например, возможность запрета авторизации по логину.
  • Clearfy Pro (https://wpshop.ru/plugins/clearfy-pro/?utm_source=wppartner.ru&utm_medium=article&utm_campaign=kak-izmenit-avtorizaciyu-po-email-v-wordpress) — многофункциональный плагин для оптимизации и безопасности, в том числе содержит опцию входа по email.

Если вы хотите иметь полный контроль или избежать зависимости от сторонних решений, можно реализовать эту функцию самостоятельно.

Реализация авторизации по email с помощью кода

Для изменения процесса авторизации нам нужно перехватить проверку логина и заменить его на email, если введено именно email-адрес. Рассмотрим пример функции wppartner_login_by_email, которую добавим в файл functions.php темы или в отдельный кастомный плагин.

function wppartner_login_by_email( $user, $username, $password ) {
    if ( is_email( $username ) ) {
        $user_data = get_user_by( 'email', $username );
        if ( $user_data ) {
            $username = $user_data->user_login;
        } else {
            return null; // Email не найден
        }
    }
    return wp_authenticate_username_password( null, $username, $password );
}
add_filter( 'authenticate', 'wppartner_login_by_email', 20, 3 );

Объяснение кода:

  • Функция принимает параметры: объект пользователя (может быть null), имя пользователя и пароль.
  • Если введённый логин является валидным email, пытаемся получить пользователя по email.
  • Если пользователь с таким email найден, заменяем переменную $username на настоящий логин пользователя.
  • Вызываем стандартную функцию проверки логина и пароля.
  • Если email не найден, возвращаем null, что вызовет ошибку авторизации.

Добавление сообщения об ошибке при несуществующем email

Чтобы улучшить UX, добавим вывод понятного сообщения, если email не зарегистрирован:

function wppartner_login_by_email( $user, $username, $password ) {
    if ( is_email( $username ) ) {
        $user_data = get_user_by( 'email', $username );
        if ( ! $user_data ) {
            return new WP_Error( 'invalid_email', __( '<strong>Ошибка</strong>: Email не зарегистрирован.' ) );
        }
        $username = $user_data->user_login;
    }
    return wp_authenticate_username_password( null, $username, $password );
}
add_filter( 'authenticate', 'wppartner_login_by_email', 20, 3 );

Дополнительные рекомендации и безопасность

При изменении способа авторизации важно сохранить безопасность сайта. Вот несколько советов:

  • Используйте SSL (HTTPS) для защиты данных авторизации.
  • Ограничьте количество попыток входа, чтобы предотвратить подбор пароля.
  • Регулярно обновляйте плагины и ядро WordPress.
  • Используйте двухфакторную аутентификацию для дополнительной защиты.

Для ограничения попыток входа можно использовать плагин Clearfy Pro, который включает функцию защиты от взлома.

Как протестировать авторизацию по email

После внедрения кода или установки плагина важно проверить работу авторизации:

  1. Очистите кэш браузера и cookie.
  2. Попробуйте войти в админ-панель, используя email зарегистрированного пользователя и правильный пароль.
  3. Попробуйте войти с неправильным email или паролем — должен выводиться корректный текст ошибки.
  4. Убедитесь, что вход по логину также работает, если это требуется.

Если все работает корректно, функция успешно интегрирована.

Вывод

Изменение авторизации в WordPress с логина на email — удобное решение, которое можно реализовать как с помощью готовых плагинов, так и собственным кодом. В статье приведён полный пример для быстрого внедрения и рекомендации по безопасности. Для расширения возможностей стоит обратить внимание на Clearfy Pro, который упростит настройку и обеспечит защиту сайта.

Вам также может быть интересно:

Как отключить emoji и oEmbed в WordPress для ускорения сайта
31.08.2026
Как найти и убрать дубли страниц в WordPress без потери индексации
15.08.2026
Как использовать Action Scheduler для отложенных задач в WordPress
05.12.2025
Как создать динамичный фильтр по пользовательским метам в WordPress
04.03.2026
Как добавить собственные типы постов в WordPress: практическое руководство
21.11.2025
×
C Днём программиста!
-20%

Ваша скидка
на премиум-темы и
плагины WordPress

Купить со скидкой сейчас ⋙