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

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

Что такое пользовательские роли и зачем они нужны в WordPress

Роль пользователя в WordPress — это набор прав (capabilities), который определяет, что конкретный пользователь может делать в административной части сайта. По умолчанию WordPress содержит несколько ролей, таких как Администратор, Редактор, Автор, Участник и Подписчик.

Однако, эти роли не всегда подходят для конкретных задач проекта. Например, если вы хотите, чтобы пользователь мог публиковать только определённые типы записей, но не имел доступа к настройкам сайта — нужна своя роль.

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

Создание пользовательской роли в WordPress с помощью функции wpexamples_add_custom_role

Для создания роли в WordPress используется функция add_role(). Рассмотрим пример создания роли «Контент-менеджер», которая сможет публиковать и редактировать записи, но не сможет менять настройки сайта.

function wpexamples_add_custom_role() {
    add_role('content_manager', 'Контент-менеджер', array(
        'read' => true,
        'edit_posts' => true,
        'publish_posts' => true,
        'edit_published_posts' => true,
        'delete_posts' => false,
        'manage_options' => false
    ));
}
add_action('init', 'wpexamples_add_custom_role');

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

Рекомендация по активации роли при установке плагина

Лучше использовать хук register_activation_hook в плагине, чтобы роль добавлялась один раз:

function wpexamples_activate_plugin() {
    wpexamples_add_custom_role();
}
register_activation_hook(__FILE__, 'wpexamples_activate_plugin');

Как добавить и удалить права (capabilities) у существующей роли

Иногда нужно не создавать новую роль, а изменить права существующей. Например, добавить возможность управлять комментариями для роли «Автор».

Для этого используется объект WP_Roles и методы add_cap и remove_cap.

function wpexamples_modify_author_caps() {
    $role = get_role('author');
    if ($role) {
        $role->add_cap('moderate_comments');
    }
}
add_action('init', 'wpexamples_modify_author_caps');

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

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

  • read — базовое право посещать админку
  • edit_posts — редактировать свои записи
  • edit_others_posts — редактировать чужие записи
  • publish_posts — публиковать записи
  • delete_posts — удалять свои записи
  • moderate_comments — модерировать комментарии
  • manage_categories — управлять категориями
  • manage_options — доступ к настройкам сайта

Как протестировать созданную роль и назначить её пользователю

После добавления роли в коде, зайдите в админку WordPress, в раздел «Пользователи» и создайте нового пользователя с ролью «Контент-менеджер». Если роль не появилась, попробуйте обновить пермалинки или очистить кеш.

Залогиньтесь под этим пользователем и проверьте, что доступны только те функции, которые вы задали. Если нужно изменить права — подправьте capabilities.

Плагины для управления ролями и правами в WordPress

Если вы не хотите писать код, есть несколько проверенных плагинов для управления ролями и правами:

  • Members — мощный редактор ролей и возможностей с удобным интерфейсом.
  • User Role Editor — простой и популярный плагин для редактирования ролей.
  • Clearfy Pro — оптимизационный плагин, в том числе с расширенным управлением ролями и возможностями.

Как удалить пользовательскую роль

Если роль больше не нужна, её можно убрать с помощью функции remove_role(). Важно делать это аккуратно, чтобы не оставить пользователей без роли.

function wpexamples_remove_custom_role() {
    remove_role('content_manager');
}
register_activation_hook(__FILE__, 'wpexamples_remove_custom_role');

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

Добавь в закладки и поделись с друзьями:

⭐⭐⭐⭐⭐
Как автоматически удалять спам комментарии в WordPress: практические решения
04.01.2026
Как создать подробный лог ошибок AJAX в WordPress с примерами кода
24.01.2026
Как создать настраиваемый фильтр товаров в WordPress с примерами кода
22.11.2025
Как создать владельческий контент в WordPress с примерами кода
17.03.2026
Как создать подробный лог авторизации в WordPress с примерами кода
20.02.2026
×

AI-плагин от WPShop.ru

анализирует конкурентов

пишет статьи

готовит SEO

генерирует изображения

и еще кое-что...
WPGPT
Плагин, который наполняет ваш сайт WordPress
Узнать больше