Как запретить доступ к административной панели WordPress для определённых пользователей

В некоторых случаях требуется ограничить доступ в административную панель WordPress для определённых ролей или отдельных пользователей. Это помогает повысить безопасность сайта, избежать случайных изменений и разграничить права доступа. В этой статье рассмотрим несколько эффективных способов запретить доступ в админку WordPress, включая использование готовых плагинов и собственных решений на PHP.

Почему важно ограничивать доступ к административной панели WordPress

Административная панель WordPress — это центр управления сайтом, где можно изменять контент, настройки, устанавливать плагины и темы. Если доступ к ней имеют пользователи, которым это не нужно или не положено, существует риск:

  • Нарушения безопасности из-за случайных или злонамеренных изменений.
  • Ошибок в настройках, влияющих на работу сайта.
  • Раскрытия конфиденциальной информации.

Поэтому разумно ограничивать доступ к /wp-admin/ и другим административным разделам для тех пользователей, которым это не нужно.

Ограничение доступа с помощью плагинов

Плагин «Remove Dashboard Access»

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

Установка и настройка:

  1. Установите и активируйте Remove Dashboard Access.
  2. В разделе настроек выберите роли, которым нужно заблокировать доступ.
  3. Укажите URL для перенаправления.

Плагин прост и не требует кода, подходит для большинства сайтов.

Использование Clearfy Pro для ограничения доступа

Clearfy Pro (https://wpshop.ru/clearfy-pro?utm_source=wpone.ru&utm_medium=article&utm_campaign=kak-zapretit-dostup-k-administrativnoj-paneli-wordpress-dlya-opredelennyh-polzovatelej) — мощный инструмент для оптимизации и безопасности сайта, который также содержит функции для контроля доступа.

В Clearfy Pro можно легко настроить запрет на вход в админку для выбранных ролей, а также блокировать доступ к REST API и другим точкам входа. Это помогает повысить безопасность без написания кода.

Ограничение доступа с помощью собственного кода

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

Пример: запрет доступа в админку для всех, кроме администраторов

function wpone_restrict_admin_access() {
    if ( is_admin() && ! current_user_can( 'administrator' ) && ! wp_doing_ajax() ) {
        wp_redirect( home_url() );
        exit;
    }
}
add_action( 'init', 'wpone_restrict_admin_access' );

В этом коде функция wpone_restrict_admin_access проверяет, находится ли пользователь в административной части, и если он не администратор и при этом не выполняется AJAX-запрос, происходит переадресация на главную страницу сайта.

Запрет доступа для определённых ролей

function wpone_restrict_admin_for_roles() {
    if ( is_admin() && ! wp_doing_ajax() ) {
        $user = wp_get_current_user();
        $blocked_roles = array( 'subscriber', 'author' ); // роли с запретом
        if ( array_intersect( $blocked_roles, $user->roles ) ) {
            wp_redirect( home_url() );
            exit;
        }
    }
}
add_action( 'init', 'wpone_restrict_admin_for_roles' );

Здесь мы создаём массив ролей, которым запрещён доступ, и проверяем роль текущего пользователя. Если роль совпадает с заблокированными — пользователь перенаправляется на главную.

Запрет доступа для конкретных пользователей по логину

function wpone_restrict_admin_for_users() {
    if ( is_admin() && ! wp_doing_ajax() ) {
        $blocked_users = array( 'user1', 'user2' ); // логины пользователей
        $current_user = wp_get_current_user();
        if ( in_array( $current_user->user_login, $blocked_users ) ) {
            wp_redirect( home_url() );
            exit;
        }
    }
}
add_action( 'init', 'wpone_restrict_admin_for_users' );

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

Рекомендации по безопасности и удобству

При ограничении доступа к административной панели важно не блокировать выполнение AJAX-запросов, поскольку многие функции на фронтенде и внутри плагинов зависят от них. В приведённых примерах мы используем проверку wp_doing_ajax(), чтобы избежать ошибок.

Также стоит предусмотреть страницу перенаправления, на которую попадёт пользователь. Это может быть главная страница, страница профиля или кастомная страница с уведомлением.

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

Дополнительные способы защиты административной панели

Ограничение доступа по IP-адресу

Для дополнительной безопасности можно ограничить доступ к /wp-admin/ по IP-адресам через настройки веб-сервера (например, в .htaccess для Apache):

Order deny,allow
Deny from all
Allow from 123.45.67.89
Allow from 98.76.54.32

Этот способ подходит, если у вас фиксированные IP-адреса сотрудников.

Двухфакторная аутентификация

Использование двухфакторной аутентификации (2FA) значительно повышает безопасность доступа. Рекомендуем использовать плагины, например Clearfy Pro, которые включают 2FA и другие инструменты безопасности.

Итоги и практические советы

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

— Не блокируйте AJAX-запросы и REST API без необходимости.

— Предусмотрите удобное перенаправление пользователей без доступа.

— Дополнительно используйте IP-фильтры и двухфакторную аутентификацию.

— Тестируйте изменения на тестовом сайте, чтобы избежать блокировки себя или важных функций.

Как удалить дубли продуктов в WooCommerce через код
07.05.2026
Как использовать WPCommunity для создания приватного клубного сайта на WordPress
19.01.2026
Как удалить неиспользуемые термины таксономий в WordPress
24.03.2026
Как использовать метаданные в WordPress для уникального контента
01.02.2026
Автоматическое создание купонов в WooCommerce при оформлении заказа
26.04.2026