Как добавить новую роль пользователя в WordPress

Права пользователей на сайте играют довольно важную роль, особенно если над ним работает целый круг людей, начиная от редактора и заканчивая главным администратором. Каждый из них имеет свои обязательства и права доступа. Понятно, что владельцу сайта будет более рационально выдать каждому из них лишь необходимые полномочия. Это в первую очередь нужно для безопасности всего сайта, так как каждый пользователь будет иметь доступ только к необходимым ему для работы функциям (например, редактор может править записи, а администратор — устанавливать плагины). Такого разграничения можно добится как стандартными средствами WordPress, так и воспользовавшись специальными плагинами, расширяющими эти возможности.

Какие бывают роли пользователей в WordPress?

Подробно расписывать по умолчанию доступные в “движке” роли не будем, так как это было сделано в одной из прошлых статей. Напомним лишь, что в WordPress существует 5 стандартных типов пользователей:

  • подписчик,
  • участник,
  • автор,
  • редактор,
  • администратор.

Зачем создавать новые роли пользователей?

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

Как в WordPress добавить новую роль пользователя?

Для решения задачи существует несколько способов. Рассмотрим наиболее популярные из них.

Способ 1. Плагин WPFront User Role Editor

Наиболее простым для пользователя является использование бесплатного плагина WPFront User Role Editor, который предоставляет для этого широкие возможности и понятный интерфейс.

Для создания новой роли следует, после установки и активации плагина, перейти в админ-раздел Roles -> Add new.

Страница настройки плагина WPFront User Role Editor

Во-первых, необходимо задать отображаемое имя новой роли (поле Display Name) и ее уникальный ярлык (Role Name).

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

Дальше, в большом блоке Capabilities, следует отметить нужные права для пользователей создаваемой роли. Видно, что они удобно разделены в соответствии со структурой WordPress-сайта. Кратко опишем каждый раздел.

  • Dashboard — доступ к админ-панели.
  • Posts — управление записями (чтение, редактирование, удаление, публикация).
  • Media — работа с медиафайлами (загрузка, редактирование, удаление, прикрепление к публикациям).
  • Pages — работа со страницами.
  • Comments — управление комментариями (редактирование, модерирование).
  • Themes — работа с WordPress-темами (переключение, обновление, редактирование файлов тем, удаление и установка).
  • Plugins — управление плагинами.
  • Users — работа с пользователями и их ролями (создание, удаление, редактирование прав, изменение их ролей).
  • Tools — возможность импорта/экспорта.
  • Admin — администраторские права (доступ к обслуживанию сайта).
  • Roles — управление пользовательскими ролями.
  • Other Capabilities — другие права, не вошедшие в вышеуказанные категории (например, для отдельных плагинов).

После того, как все права были отмечены, нужно нажать кнопку Add New Role, после чего перед вами будет выведен список всех зарегистрированных на сайте ролей.

Список ролей

Созданную роль можно редактировать. Для этого просто необходимо на нее навести курсор и выбрать Edit.

Редактирование роли

Отметим, что плагин позволяет создать неограниченное число ролей.

Способ 2. Вручную

Существует еще один способ создания новой пользовательской роли. Он предусматривает использование специальных инструментов WordPress на языке программирования PHP.

Отметим, что весь последующий код будет располагаться в специальном файле functions.php вашей активной WordPress-темы.

Если Вы не знаете, как редактировать functions.php, то в этом случае Вам поможет плагин ProFunctions.

В качестве примера создадим роль, в которой пользователи будут иметь права:

  • редактировать темы;
  • добавлять/удалять плагины;
  • устанавливать новые версии “движка”.

Для начала добавим следующий код:

$result = add_role( 'wpschool_custom_admin', __(
'WPSchool Custom Admin' ),
array( ) );

Тут переменная $result будет содержать массив со всеми правами. add_role() — специальная функция WordPress, с помощью которой собственно и будет создана новая пользовательская роль. Значение ‘wpschool_custom_admin’ — это уникальный идентификатор новой роли, а ‘WPSchool Custom Admin’ — ее отображаемое имя.

Теперь добавим соответствующие роли:

'edit_themes' => true, // редактирование тем
'install_plugins' => true, // установка плагинов
'update_plugin' => true, // обновление плагинов
'update_core' => true // обновление ядра WordPress

Полный исходный код:

$result = add_role( 'wpschool_custom_admin', __(
'WPSchool Custom Admin' ),
array(

    'edit_themes' => true, // редактирование тем
    'install_plugins' => true, // установка плагинов
    'update_plugin' => true, // обновление плагинов
    'update_core' => true // обновление ядра WordPress

)
);

Весь список ролей и прав для сайта WordPress можно посмотреть на официальном сайте.

Созданную роль можно будет выбрать при создании (или редактировании уже существующего) пользователя.

Создание нового пользователя

Курс WordPress-разработчик
Если Вам понравилась статья — поделитесь с друзьями
Михаил Петров