Как отключить вход в wp-login.php для администраторов WordPress

В стандартной конфигурации WordPress доступ к странице входа wp-login.php открыт для всех пользователей, включая администраторов. Иногда возникает задача временно или постоянно ограничить возможность входа через wp-login.php именно для администраторов, например, для повышения безопасности или при использовании альтернативных методов аутентификации. В этой статье подробно разберём, как это сделать программно, без установки лишних плагинов, а также с помощью популярных инструментов.

Почему может понадобиться отключить вход в wp-login.php для администраторов

Отключение входа в wp-login.php для администраторов — нестандартное решение, но у него есть ряд практических сценариев:

  • Использование кастомных страниц входа. Если вы разработали собственную страницу авторизации, то хотите запретить администраторам использовать стандартную форму.
  • Повышение безопасности. Ограничение доступа к wp-login.php даже для админов снижает риск автоматизированных атак и брутфорса.
  • Контроль доступа. Например, только определённые IP-адреса могут заходить через стандартный вход, остальные — через альтернативные методы.

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

Решение через функцию в functions.php: отключаем вход для администраторов

Самый простой способ — добавить код в файл functions.php вашей темы или создать мини-плагин. Он будет проверять, если пользователь пытается зайти через wp-login.php и если его роль — администратор, то вход будет заблокирован с сообщением.

add_action('login_init', 'wplogin_disable_admin_wp_login');
function wplogin_disable_admin_wp_login() {
    // Проверяем, что это попытка входа
    if (isset($_POST['log']) && isset($_POST['pwd'])) {
        $user = get_user_by('login', $_POST['log']);
        if ($user && in_array('administrator', $user->roles)) {
            wp_die('Вход через стандартную форму wp-login.php для администраторов отключён.');
        }
    }
}

В этом коде мы перехватываем событие login_init, проверяем логин и если это администратор — останавливаем процесс с сообщением. Такой подход прост, но не блокирует форму до момента отправки.

Улучшение: перенаправление администраторов на кастомную страницу

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

add_action('login_init', 'wplogin_redirect_admin_wp_login');
function wplogin_redirect_admin_wp_login() {
    if (isset($_POST['log']) && isset($_POST['pwd'])) {
        $user = get_user_by('login', $_POST['log']);
        if ($user && in_array('administrator', $user->roles)) {
            wp_redirect(home_url('/custom-login/'));
            exit;
        }
    }
}

Замените /custom-login/ на URL вашей альтернативной страницы входа.

Блокировка входа по IP для администраторов через .htaccess

Если у вас статический IP или диапазон IP, с которых должен быть разрешён вход для админов, можно заблокировать доступ к wp-login.php через .htaccess:

<Files wp-login.php>
    Order Deny,Allow
    Deny from all
    Allow from 123.45.67.89
</Files>

Но этот способ ограничивает всех, а не только администраторов. Для более тонкой настройки лучше использовать PHP-код.

Использование плагина Clearfy Pro для ограничения доступа к wp-login.php

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

В Clearfy Pro вы можете:

  • Изменить URL страницы входа и ограничить доступ к старому.
  • Установить ограничения по IP.
  • Добавить дополнительный уровень защиты для администраторов.

Это решение удобно, если не хотите писать код и готовы использовать готовый функционал.

Пример расширенного кода: отключение входа для администраторов с логированием попыток

Для продвинутого контроля можно добавить логирование попыток входа администраторов через wp-login.php и уведомления на email.

add_action('wp_login_failed', 'wplogin_log_admin_login_fail');
function wplogin_log_admin_login_fail($username) {
    $user = get_user_by('login', $username);
    if ($user && in_array('administrator', $user->roles)) {
        $message = "Попытка входа администратора через wp-login.php: " . $username . " IP: " . $_SERVER['REMOTE_ADDR'];
        error_log($message);
        wp_mail('admin@yoursite.ru', 'Попытка входа администратора', $message);
    }
}

add_action('login_init', 'wplogin_block_admin_login_with_message');
function wplogin_block_admin_login_with_message() {
    if (isset($_POST['log']) && isset($_POST['pwd'])) {
        $user = get_user_by('login', $_POST['log']);
        if ($user && in_array('administrator', $user->roles)) {
            wp_die('Вход для администраторов через wp-login.php отключён. Используйте альтернативный метод.');
        }
    }
}

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

Заключение по теме ограничения входа для администраторов

Отключение входа в wp-login.php для администраторов — задача не самая распространённая, но важная в рамках комплексной безопасности и кастомизации. Мы рассмотрели несколько способов:

  • Простой PHP-код для блокировки и перенаправления.
  • Использование .htaccess для ограничения по IP.
  • Применение плагина Clearfy Pro для удобного управления.
  • Расширенный код с логированием и уведомлениями.

Выбирайте подходящий для вашего проекта и не забывайте делать резервные копии перед изменениями.

Как автоматизировать откат пароля в WordPress после взлома
30.04.2026
Как создать автоматический отчет о входах в WordPress
19.03.2026
Диагностика и решение проблем с выходом из WordPress: как исправить некорректный logout
26.05.2026
Как отключить XML-RPC в WordPress только для неавторизованных пользователей
23.06.2026
Решение проблемы с синхронизацией входов между WooCommerce и WordPress
28.07.2026

wp-login.php - это страница входа в системе управления вордпресс. Если Вы хотите изменить внешний вид страницы входа - читайте здесь. Если вам нужно защитить админку - подробный мануал. Вы можете установить плагин Clearfy, в котором есть функция защиты админки и страницы входа.