Как изменить сообщение об ошибке при входе в WordPress

Стандартное сообщение об ошибке при неправильном вводе логина или пароля в WordPress выглядит довольно однообразно и неинформативно: "Ошибка: неправильное имя пользователя или пароль." В некоторых случаях это может быть полезно для безопасности, но часто администратор хочет сделать сообщение более понятным для пользователей или кастомизировать его под свой стиль сайта.

Почему стоит менять стандартное сообщение об ошибке при входе в WordPress

По умолчанию WordPress выводит одно и то же сообщение как при неправильном вводе логина, так и при неправильном пароле. Это снижает риск подбора логина или пароля злоумышленниками, так как они не могут понять, что именно введено неверно. Однако для легитимных пользователей более подробные сообщения могут ускорить процесс восстановления доступа и улучшить UX.

Кроме того, кастомизация сообщений об ошибках позволяет избежать показа стандартного текста WordPress, что немного повышает безопасность, скрывая детали о системе.

Также можно дополнительно стилизовать сообщение или добавить ссылки на восстановление пароля, что улучшит удобство пользователей.

Как изменить сообщение об ошибке при входе: базовый способ с хуком wp_login_errors

Для изменения сообщения об ошибке при входе в WordPress лучше всего использовать хук wp_login_errors, который позволяет фильтровать объект с ошибками перед их выводом.

Ниже приведён пример функции wpinfo_customize_login_error_message, которая заменяет стандартное сообщение на своё:

function wpinfo_customize_login_error_message( $errors, $redirect_to ) {
    // Очищаем все ошибки
    $errors = new WP_Error();
    // Добавляем своё сообщение
    $errors->add('custom_login_error', __('Ошибка входа: проверьте логин и пароль или восстановите доступ.')); 
    return $errors;
}
add_filter( 'wp_login_errors', 'wpinfo_customize_login_error_message', 10, 2 );

Этот код полностью заменит все стандартные ошибки на своё сообщение. Его нужно добавить в файл functions.php вашей темы или в свой плагин.

Пояснения к коду

  • Объект WP_Error очищается, чтобы убрать старые сообщения.
  • Добавляется новое сообщение с ключом custom_login_error.
  • Функция подключается к фильтру wp_login_errors.

Как сделать сообщение более информативным: различать ошибки логина и пароля

Если хотите разграничить сообщения об ошибках для неправильного логина и неправильного пароля, это потребует более сложного подхода, так как WordPress не предоставляет прямого фильтра для этого.

Один из способов — использовать хук authenticate, который вызывается при аутентификации пользователя. В нем можно ловить ошибки и менять сообщения.

function wpinfo_custom_authenticate( $user, $username, $password ) {
    if ( empty($username) || empty($password) ) {
        return new WP_Error('empty_credentials', __('Пожалуйста, заполните оба поля: логин и пароль.'));
    }

    $user_data = get_user_by('login', $username);
    if ( !$user_data ) {
        return new WP_Error('invalid_username', __('Пользователь с таким логином не найден.'));
    }

    if ( !wp_check_password($password, $user_data->user_pass, $user_data->ID) ) {
        return new WP_Error('incorrect_password', __('Неверный пароль. Попробуйте снова или восстановите пароль.'));
    }

    return $user;
}
add_filter( 'authenticate', 'wpinfo_custom_authenticate', 20, 3 );

Этот код проверяет отдельно наличие пользователя и корректность пароля с выдачей разных сообщений. Так интерфейс становится более дружелюбным.

Использование плагинов для кастомизации сообщений об ошибках

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

  • Custom Login Error Message — простой плагин для изменения текста ошибок входа.
  • Clearfy Pro — мощный плагин для оптимизации и безопасности WordPress, в котором есть опция кастомизации сообщений и других элементов входа.

Рекомендации по безопасности при кастомизации сообщений об ошибках

Важно помнить, что слишком подробные сообщения об ошибках могут облегчить жизнь злоумышленникам. Например, если вы показываете, что пользователь существует, но пароль неверен, это упрощает подбор логинов.

Поэтому лучше либо:

  • Оставлять универсальное сообщение, не указывающее, что именно введено неверно.
  • Добавлять дополнительные меры безопасности: ограничение количества попыток входа, капчу, двухфакторную аутентификацию.

Плагины вроде Clearfy Pro помогут включить эти функции без дополнительных усилий.

Как добавить ссылку на восстановление пароля в сообщение об ошибке

Часто удобно прямо в сообщении об ошибке предлагать пользователю перейти к восстановлению пароля. Для этого можно изменить функцию, добавив HTML-ссылку:

function wpinfo_customize_login_error_with_link( $errors, $redirect_to ) {
    $errors = new WP_Error();
    $reset_link = wp_lostpassword_url();
    $message = __('Ошибка входа. Проверьте логин и пароль или ') . '<a href="' . esc_url($reset_link) . '">' . __('восстановите пароль') . '</a>.';
    $errors->add('custom_login_error', $message);
    return $errors;
}
add_filter( 'wp_login_errors', 'wpinfo_customize_login_error_with_link', 10, 2 );

Это сделает сообщение более полезным и поможет пользователям быстрее решить проблему.

Выводы и советы

Изменение сообщения об ошибке при входе — простая, но полезная кастомизация, которая улучшает UX и может повысить безопасность сайта. Используйте хук wp_login_errors для простой замены текста или authenticate для более сложной логики.

Не забывайте о балансе между информативностью и безопасностью. Поддерживайте сайт в актуальном состоянии и применяйте дополнительные меры защиты.

Если хотите быстро и удобно менять сообщения и добавлять защиту, обратите внимание на плагин Clearfy Pro — он объединяет множество полезных функций для WordPress.

Как изменить slug в своей категории WordPress
15.12.2025
Автоматическое создание резервных копий WordPress: лучшие практики и примеры кода
22.12.2025
Как добавить автоматические уведомления о обновлениях тем и плагинов в WordPress
17.04.2026
Как изменить имя пользователя в WordPress без доступа к базе данных
26.03.2026
Как автоматически переводить посты WordPress на другие языки
02.03.2026