Страница входа в WordPress – важный элемент любого сайта, который часто нуждается в кастомизации под стиль проекта или в усилении безопасности. Многие пользователи сразу устанавливают плагины для изменения страницы входа, но это не всегда оправдано: плагины могут замедлять сайт и создавать дополнительные уязвимости. В этой статье мы рассмотрим, как без плагинов изменить внешний вид и функционал страницы входа, а также добавить базовые меры безопасности с помощью собственного кода.
Почему стоит настраивать страницу входа без плагинов
Использование плагинов – быстрый способ получить результаты, но у него есть минусы:
- Дополнительная нагрузка на сайт и рост времени загрузки;
- Потенциальные конфликты с другими плагинами и темой;
- Риск уязвимостей из-за плохо поддерживаемого кода;
- Усложнение поддержки и обновлений сайта.
Если вы разбираетесь в PHP и CSS, лучше написать свои функции и стили. Это даст полный контроль и безопасность.
Как изменить дизайн страницы входа с помощью функций темы
Все изменения для страницы входа можно добавить в файл functions.php вашей активной темы или в дочернюю тему, чтобы не потерять их при обновлении.
Смена логотипа и ссылки на главную
По умолчанию на странице входа отображается логотип WordPress, ведущий на wordpress.org. Заменим его на логотип вашего сайта и изменим ссылку на главную вашего ресурса.
function wppartner_custom_login_logo() {
echo '<style>
body.login {
background-color: #f1f1f1;
}
.login h1 a {
background-image: url('.get_stylesheet_directory_uri().'/images/custom-logo.png) !important;
width: 320px !important;
height: 80px !important;
background-size: contain !important;
}
</style>';
}
add_action('login_enqueue_scripts', 'wppartner_custom_login_logo');
function wppartner_custom_login_logo_url() {
return home_url();
}
add_filter('login_headerurl', 'wppartner_custom_login_logo_url');
function wppartner_custom_login_logo_url_title() {
return 'Добро пожаловать на WPPartner';
}
add_filter('login_headertext', 'wppartner_custom_login_logo_url_title');
В этом коде мы подключаем пользовательский логотип из папки темы /images/custom-logo.png и меняем ссылку и подсказку.
Кастомизация формы входа: поля и стили
Чтобы изменить цвета, шрифты или расположение элементов, добавьте CSS напрямую через хук login_enqueue_scripts. Например:
function wppartner_custom_login_styles() {
echo '<style>
.login form {
background: #ffffff;
border: 1px solid #ddd;
padding: 26px 24px;
box-shadow: 0 1px 3px rgba(0,0,0,.13);
border-radius: 5px;
}
.login label {
font-weight: 700;
color: #333;
}
.login .button-primary {
background: #0073aa;
border-color: #006799;
box-shadow: none;
text-shadow: none;
}
.login .button-primary:hover {
background: #006799;
border-color: #005684;
}
</style>';
}
add_action('login_enqueue_scripts', 'wppartner_custom_login_styles');
Это изменит внешний вид формы входа, сделав ее более современной и гармоничной с вашим сайтом.
Добавление базовой защиты страницы входа
Кроме дизайна, важно усилить безопасность. Рассмотрим несколько простых мер без плагинов.
Ограничение количества попыток входа
Для предотвращения brute-force атак можно ограничить число попыток авторизации за короткий период. Вот простой пример с использованием сессий:
function wppartner_limit_login_attempts() {
session_start();
$max_attempts = 5;
$lockout_time = 15 * 60; // 15 минут
if (!isset($_SESSION['wppartner_login_attempts'])) {
$_SESSION['wppartner_login_attempts'] = 0;
$_SESSION['wppartner_last_attempt'] = time();
}
if (time() - $_SESSION['wppartner_last_attempt'] > $lockout_time) {
$_SESSION['wppartner_login_attempts'] = 0;
}
if ($_SESSION['wppartner_login_attempts'] >= $max_attempts) {
wp_die('Слишком много неудачных попыток входа. Попробуйте позже.');
}
}
add_action('wp_login_failed', function() {
session_start();
$_SESSION['wppartner_login_attempts'] = ($_SESSION['wppartner_login_attempts'] ?? 0) + 1;
$_SESSION['wppartner_last_attempt'] = time();
});
add_action('login_form_login', 'wppartner_limit_login_attempts');
Этот код ограничит количество неудачных попыток до 5 за 15 минут. Конечно, для боевого сайта лучше использовать более надежные методы или проверенные плагины.
Скрытие сообщения об ошибках
По умолчанию WordPress показывает подробные ошибки при неудачном входе, что облегчает взлом. Чтобы скрыть подробности, добавьте:
function wppartner_login_error_message() {
return 'Неверный логин или пароль.';
}
add_filter('login_errors', 'wppartner_login_error_message');
Пример: создание собственного плагина для кастомизации страницы входа
Если вы хотите, чтобы изменения не зависели от темы, можно оформить код в небольшой плагин. Создайте файл custom-login-wppartner.php в папке wp-content/plugins со следующим содержанием:
<?php
/**
* Plugin Name: WPPartner Custom Login
* Description: Кастомизация страницы входа без сторонних плагинов
* Version: 1.0
* Author: WPPartner
*/
function wppartner_custom_login_logo() {
echo '<style> /* CSS из примера выше */ </style>';
}
add_action('login_enqueue_scripts', 'wppartner_custom_login_logo');
// Здесь добавьте остальные функции из статьи
После активации плагина изменения сразу вступят в силу, и вы сможете управлять ими централизованно.
Полезные плагины для расширенной настройки страницы входа
Если все же понадобится более сложный функционал, рекомендую обратить внимание на плагины:
- LoginPress — удобный конструктор дизайна страницы входа;
- Limit Login Attempts Reloaded — надежное ограничение попыток входа;
- Clearfy Pro — плагин для оптимизации и безопасности, в том числе улучшает защиту страницы входа.
Итог
Кастомизация страницы входа без плагинов — отличный способ контролировать внешний вид и повысить безопасность сайта без лишних нагрузок. Приведенные в статье методы подходят для большинства проектов и легко адаптируются под задачи. При необходимости вы всегда сможете расширить функционал, оформив код в плагин или используя проверенные сторонние решения.