Страница входа в WordPress — это первое, что видят пользователи и администраторы при авторизации на сайте. По умолчанию она выглядит стандартно, что не всегда подходит для брендированных проектов или сайтов с повышенными требованиями к безопасности и удобству. В этой статье расскажу, как кастомизировать страницу входа (wp-login.php) с помощью проверенных плагинов и собственных функций, чтобы сделать её уникальной и функциональной.
Почему стоит настраивать страницу входа WordPress
Стандартная страница входа WordPress простая и не всегда соответствует дизайну вашего сайта. Настройка страницы входа позволяет:
- Создать единый стиль и повысить лояльность пользователей.
- Добавить дополнительные функции — например, капчу, ссылки на восстановление пароля или регистрацию.
- Улучшить безопасность, скрыв стандартный URL или усилив защиту от брутфорса.
- Упростить работу клиентам и администраторам за счет удобного интерфейса.
Далее рассмотрим несколько способов настройки страницы входа с примерами кода и полезными плагинами.
Настройка логотипа и стиля страницы входа через functions.php
Самый простой способ — добавить кастомный логотип и изменить стили с помощью хуков и фильтров. В файле functions.php вашей темы или в отдельном плагине добавьте следующий код:
function wp_puzzle_custom_login_logo() {
echo '<style>
.login h1 a {
background-image: url('.get_stylesheet_directory_uri().'/images/custom-logo.png) !important;
background-size: contain;
width: 320px;
height: 80px;
}
body.login {
background-color: #f7f7f7;
}
.login form {
background: #fff;
border-radius: 8px;
box-shadow: 0 0 10px rgba(0,0,0,0.1);
}
</style>';
}
add_action('login_enqueue_scripts', 'wp_puzzle_custom_login_logo');Этот код меняет логотип на странице входа на изображение /images/custom-logo.png из папки вашей темы, а также задаёт светлый фон и стили для формы.
Чтобы поменять ссылку с логотипа и подсказку, используйте:
function wp_puzzle_login_logo_url() {
return home_url();
}
add_filter('login_headerurl', 'wp_puzzle_login_logo_url');
function wp_puzzle_login_logo_url_title() {
return 'Перейти на главную страницу';
}
add_filter('login_headertitle', 'wp_puzzle_login_logo_url_title');Добавление дополнительных полей и капчи на страницу входа
Для повышения безопасности часто требуется добавить капчу или дополнительные поля. Один из популярных плагинов — Clearfy Pro, который умеет легко интегрировать Google reCAPTCHA на страницу входа без лишних настроек.
Если хотите сделать это вручную, можно использовать пример с Google reCAPTCHA v2:
- Зарегистрируйтесь на сайте Google reCAPTCHA и получите ключи.
- Добавьте скрипт на страницу входа с помощью хука
login_enqueue_scripts. - Добавьте HTML капчи в форму.
- Проверьте ответ на сервере при авторизации.
function wp_puzzle_enqueue_recaptcha() {
wp_enqueue_script('google-recaptcha', 'https://www.google.com/recaptcha/api.js', array(), null, true);
}
add_action('login_enqueue_scripts', 'wp_puzzle_enqueue_recaptcha');
function wp_puzzle_add_recaptcha_field() {
echo '<div class="g-recaptcha" data-sitekey="ваш_site_key"></div>';
}
add_action('login_form', 'wp_puzzle_add_recaptcha_field');
function wp_puzzle_verify_recaptcha($user, $username, $password) {
if (isset($_POST['g-recaptcha-response'])) {
$response = wp_remote_post('https://www.google.com/recaptcha/api/siteverify', array(
'body' => array(
'secret' => 'ваш_secret_key',
'response' => $_POST['g-recaptcha-response']
)
));
$response_body = wp_remote_retrieve_body($response);
$result = json_decode($response_body);
if (!$result->success) {
return new WP_Error('captcha_error', '<strong>Ошибка:</strong> Пожалуйста, подтвердите, что вы не робот.');
}
} else {
return new WP_Error('captcha_error', '<strong>Ошибка:</strong> Капча не заполнена.');
}
return $user;
}
add_filter('authenticate', 'wp_puzzle_verify_recaptcha', 21, 3);Этот пример добавляет капчу на страницу входа и проверяет её при попытке авторизации.
Изменение URL страницы входа для безопасности и удобства
Стандартный URL /wp-login.php — частая цель атак. Можно изменить URL страницы входа с помощью плагинов или вручную.
Плагин Clearfy Pro позволяет быстро переопределить URL входа без сложных настроек.
Для ручной реализации можно использовать следующий код в functions.php:
function wp_puzzle_custom_login_url() {
$login_url = home_url('/custom-login'); // новый URL
if (strpos($_SERVER['REQUEST_URI'], 'wp-login.php') !== false) {
wp_redirect($login_url);
exit;
}
}
add_action('init', 'wp_puzzle_custom_login_url');Однако этот метод требует дополнительной настройки маршрутизации и защиты, поэтому рекомендуется использовать специализированные плагины.
Полная замена страницы входа через плагин Theme My Login
Если нужна глубокая кастомизация с возможностью управления регистрацией, сбросом пароля и профилем пользователя, обратите внимание на плагин Theme My Login.
Он позволяет создать страницу входа в стиле вашей темы, добавлять собственные поля, настраивать редиректы и уведомления. Для интеграции с ним достаточно активировать плагин и настроить шаблоны, которые автоматически заменят стандартный wp-login.php.
Для примера, вы можете добавить в файл шаблона вашей темы следующий код, чтобы вывести форму входа в любом месте сайта:
<?php
if (function_exists('wp_puzzle_theme_my_login_form')) {
wp_puzzle_theme_my_login_form();
}
?>Это позволит интегрировать страницу входа максимально органично.
Резюме и рекомендации
Настраивать страницу входа в WordPress полезно для брендирования и улучшения безопасности сайта. Используйте комбинацию простых CSS-правок, добавляйте капчу для защиты и подумайте о смене URL входа для снижения рисков атак.
Рекомендую начинать с простых изменений через functions.php и затем, при необходимости, подключать мощные плагины, например, Clearfy Pro. Для сложных сценариев с регистрацией и профилями отлично подойдет Theme My Login.
Так вы сможете сделать страницу входа не только красивой, но и удобной и безопасной.