Страница входа в WordPress — это первое, что видят пользователи при авторизации, и часто требуется её адаптировать под стиль сайта или добавить дополнительные функции безопасности и удобства. В этой статье расскажем, как кастомизировать страницу входа как с помощью популярных плагинов, так и вручную при помощи кода, что позволит гибко и эффективно решить задачу.
Зачем нужна кастомизация страницы входа WordPress
Стандартная страница входа WordPress очень минималистична и не всегда совпадает с дизайном сайта. Кастомизация нужна для:
- Улучшения визуального восприятия и брендирования;
- Добавления подсказок и инструкций для пользователей;
- Обеспечения дополнительной безопасности — например, скрытия ошибок или изменения URL;
- Упрощения процесса входа с помощью социальных сетей или двухфакторной аутентификации.
Рассмотрим, как это реализовать на практике.
Использование плагинов для изменения страницы входа
Плагин LoginPress
LoginPress — один из популярных плагинов для кастомизации входа. Позволяет менять фон, логотип, стили кнопок и добавлять собственные сообщения.
Основные возможности:
- Визуальный редактор для настройки элементов страницы;
- Поддержка кастомных CSS;
- Возможность добавления пользовательских сообщений и ссылок;
- Интеграция с социальными сетями (в премиум версии).
Установка и базовая настройка LoginPress:
1. В админке WordPress перейдите в "Плагины" > "Добавить новый".<br>2. Введите "LoginPress" в поиске и установите плагин.<br>3. Активируйте плагин и перейдите в меню "LoginPress" в админке.<br>4. Настройте дизайн и дополнительные параметры через визуальный редактор.Плагин Custom Login Page Customizer
Этот плагин использует встроенный кастомайзер WordPress, что делает процесс более интуитивным. Можно менять фон, логотип, цветовые схемы и добавлять CSS.
Преимущества:
- Простота использования;
- Живое превью изменений;
- Поддержка мобильных устройств;
- Бесплатная версия покрывает базовые нужды.
Подключение и настройка аналогичны LoginPress.
Кастомизация страницы входа с помощью кода
Если нужна полная свобода и отказ от плагинов, можно внести изменения через functions.php или создать собственный плагин. Рассмотрим основные методы.
Изменение логотипа на странице входа
Для замены логотипа используйте хук login_enqueue_scripts и подключите свои стили:
function wpreboot_custom_login_logo() {
echo '<style>
body.login {
background-color: #f1f1f1;
}
.login h1 a {
background-image: url(' . get_stylesheet_directory_uri() . '/images/custom-logo.png);
width: 320px;
height: 80px;
background-size: contain;
}
</style>';
}
add_action('login_enqueue_scripts', 'wpreboot_custom_login_logo');Замените путь на свой логотип в папке темы.
Изменение URL ссылки логотипа
По умолчанию логотип ведет на wordpress.org. Меняем на главную сайта:
function wpreboot_login_logo_url() {
return home_url();
}
add_filter('login_headerurl', 'wpreboot_login_logo_url');Кастомный текст подсказки при наведении на логотип
function wpreboot_login_logo_url_title() {
return 'Добро пожаловать на сайт!';
}
add_filter('login_headertext', 'wpreboot_login_logo_url_title');Добавление пользовательских полей на страницу входа
Иногда требуется добавить, например, поле для ввода кода или примечание. Используем хук login_form:
function wpreboot_add_custom_login_field() {
echo '<p><label for="custom_code">Код доступа<br><input type="text" name="custom_code" id="custom_code" class="input" value="" size="20" /></label></p>';
}
add_action('login_form', 'wpreboot_add_custom_login_field');Чтобы обработать и проверить поле, нужно использовать хук authenticate:
function wpreboot_check_custom_login_field($user, $username, $password) {
if (isset($_POST['custom_code'])) {
$code = sanitize_text_field($_POST['custom_code']);
if ($code !== '12345') { // пример проверки
return new WP_Error('custom_code_error', '<strong>Ошибка:</strong> Неверный код доступа.');
}
}
return $user;
}
add_filter('authenticate', 'wpreboot_check_custom_login_field', 30, 3);Дополнительные советы по безопасности и удобству
Смена URL страницы входа
Чтобы скрыть стандартный URL wp-login.php и снизить риск брутфорс-атак, можно использовать плагин WProbot или Clearfy Pro, которые среди прочего позволяют менять URL входа без потери функционала.
Добавление reCAPTCHA на страницу входа
Для защиты от ботов и спама рекомендуем использовать плагин Quizle или подключить Google reCAPTCHA вручную:
function wpreboot_add_recaptcha() {
echo '<div class="g-recaptcha" data-sitekey="ВАШ_SITE_KEY"></div>';
}
add_action('login_form', 'wpreboot_add_recaptcha');
function wpreboot_verify_recaptcha($user, $username, $password) {
if (empty($_POST['g-recaptcha-response'])) {
return new WP_Error('captcha_error', '<strong>Ошибка:</strong> Пожалуйста, подтвердите, что вы не робот.');
}
$response = wp_remote_post('https://www.google.com/recaptcha/api/siteverify', [
'body' => [
'secret' => 'ВАШ_SECRET_KEY',
'response' => $_POST['g-recaptcha-response']
]
]);
$response_body = wp_remote_retrieve_body($response);
$result = json_decode($response_body, true);
if (!$result['success']) {
return new WP_Error('captcha_error', '<strong>Ошибка:</strong> Подтверждение reCAPTCHA не прошло.');
}
return $user;
}
add_filter('authenticate', 'wpreboot_verify_recaptcha', 30, 3);Улучшение пользовательского опыта
Можно добавить ссылки на восстановление пароля, регистрацию или на главную страницу с помощью фильтров login_footer или добавлять произвольные сообщения.
Пример добавления ссылки внизу формы:
function wpreboot_custom_login_footer() {
echo '<p style="text-align:center; margin-top:20px;"><a href="' . esc_url(home_url()) . '">Вернуться на сайт</a></p>';
}
add_action('login_footer', 'wpreboot_custom_login_footer');