Как создать группу пользователей в WordPress с правилами доступа

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

Почему стандартных ролей WordPress может быть недостаточно

Стандартные роли в WordPress покрывают базовые задачи, но при сложных проектах, например, порталах с закрытым контентом, образовательных сайтах или корпоративных ресурсах, требуется более тонкая настройка. Например, нужно, чтобы одна группа могла видеть одни записи и страницы, а другая — другие. Или чтобы разные группы могли публиковать, редактировать и удалять разные типы записей.

Задача создания группы пользователей с уникальными правами часто решается добавлением новых ролей и настройкой capabilities (способностей, прав) в WordPress.

Создание собственной роли и настройка прав доступа через код

Для создания новой роли используется функция add_role. Рассмотрим пример создания роли «Премиум-пользователь» с ограниченными правами доступа.

function wpaction_add_custom_role() {
    add_role(
        'premium_user', // уникальный идентификатор роли
        'Премиум-пользователь', // отображаемое имя
        array(
            'read' => true, // может читать контент
            'edit_posts' => false, // не может редактировать записи
            'upload_files' => true, // может загружать файлы
        )
    );
}
add_action('init', 'wpaction_add_custom_role');

Этот код добавит новую роль с минимальным набором прав. Однако для управления доступом к конкретным страницам или записям этого недостаточно. Нужно дополнительно проверять роль пользователя при загрузке контента.

Пример ограничения доступа к определённым страницам

Чтобы ограничить доступ к странице с ID 42 только для пользователей с ролью «premium_user», добавим фильтр:

function wpaction_restrict_page_access() {
    if (is_page(42) && !current_user_can('premium_user')) {
        wp_redirect(home_url());
        exit;
    }
}
add_action('template_redirect', 'wpaction_restrict_page_access');

Этот код проверит при загрузке страницы, что пользователь обладает нужной ролью, и если нет — перенаправит его на главную страницу.

Использование плагина Members для создания и управления группами пользователей

Если хотите упростить процесс создания ролей и настройки прав, обратите внимание на плагин Members. Он позволяет создавать роли и управлять capabilities через удобный интерфейс.

Плагин позволяет:

  • Создавать и удалять роли пользователей.
  • Назначать права на отдельные возможности (например, редактирование страниц, публикация записей).
  • Настраивать доступ к контенту через шорткоды и параметры.

Пример использования шорткода плагина для показа контента только пользователям с определённой ролью:

[members_only roles="premium_user"]
Контент для премиум пользователей
[/members_only]

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

Плагин Members также позволяет управлять видимостью виджетов. Для этого после установки и активации, в настройках виджета появится опция выбора ролей, для которых он будет виден.

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

Пример создания кастомной проверки доступа в шаблонах темы

Если вы пишете тему и хотите встроить проверку доступа по группам в шаблоны, можно использовать функцию wpaction_user_has_role:

function wpaction_user_has_role($role) {
    if (!is_user_logged_in()) return false;
    $user = wp_get_current_user();
    return in_array($role, (array) $user->roles);
}

Использование в шаблоне:

if (wpaction_user_has_role('premium_user')) {
    echo 'Контент для премиум пользователей';
} else {
    echo 'У вас нет доступа к этому контенту';
}

Такой подход позволяет гибко контролировать отображение элементов сайта без сторонних плагинов.

Интеграция с плагином WPRemark для автоматизации доступа

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

Например, после прохождения теста или выполнения задания — пользователь получает роль «premium_user», что открывает ему доступ к закрытому контенту.

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

Подводим итоги и рекомендации

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

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

Как удалить заблокированные пользователи из WordPress
09.12.2025
Как создать мультиязычный сайт на WordPress без плагинов
17.01.2026
Как избежать проблем с кэшированием в WordPress: практические решения
01.01.2026
Как добавить поддержку JSON-LD в WordPress для улучшения SEO
11.01.2026
Как удалить неиспользуемые медиафайлы в WordPress
02.12.2025