Команда wp cap
предназначена для работы с возможностями (capabilities) ролей в WordPress. С ее помощью можно добавлять, удалять и перечислять возможности для указанных ролей. Это инструмент незаменим для администраторов сайтов и разработчиков, работающих с системой пользовательских прав WordPress.
Основные команды
Команда | Описание |
---|---|
wp cap list | Отображает список возможностей указанной роли. |
wp cap add | Добавляет новые возможности для роли. Работает на основе методов WP_Roles::get_role() и add_cap() . |
wp cap remove | Удаляет указанные возможности у роли. Использует методы WP_Roles::get_role() и remove_cap() . |
Команда wp cap list
Эта команда выводит все возможности, присвоенные указанной роли. Вы также можете изменить формат отображения данных или показать, разрешено ли использование возможности.
Использование
wp cap list <role> [--format=<format>] [--show-grant]
<role>
— Название роли (например,administrator
,editor
).[--format=<format>]
— Формат вывода данных. Поддерживаемые значения:list
(по умолчанию),table
,csv
,json
,yaml
,count
.
[--show-grant]
— Флаг, добавляющий информацию о доступности каждой возможности (true
илиfalse
).
Примеры
- Вывод всех возможностей роли
author
:
$ wp cap list author
edit_posts
read
delete_posts
- Вывод в формате таблицы с указанием доступности:
$ wp cap list author --format=table --show-grant
+------------------+-------+
| Capability | Grant |
+------------------+-------+
| edit_posts | true |
| read | true |
| delete_posts | true |
+------------------+-------+
- Попытка отобразить возможности несуществующей роли:
$ wp cap list fake_role
Error: 'fake_role' role not found.
Команда wp cap add
Добавляет одну или несколько возможностей указанной роли. Если возможность уже существует, она не будет добавлена повторно.
Использование
wp cap add <role> <capabilities>... [--grant]
<role>
— Название роли.<capabilities>...
— Одна или несколько возможностей.[--grant]
— Флаг для указания, что возможность должна быть разрешена. По умолчанию:true
.
Примеры
- Добавление одной возможности роли
editor
:
$ wp cap add editor manage_categories
Success: Added 1 capability to 'editor' role.
- Добавление нескольких возможностей роли
administrator
:
$ wp cap add administrator edit_themes manage_options export
Success: Added 3 capabilities to 'administrator' role.
- Попытка добавить возможность несуществующей роли:
$ wp cap add fake_role manage_categories
Error: 'fake_role' role not found.
Команда wp cap remove
Удаляет одну или несколько возможностей у указанной роли. Если указанной возможности у роли нет, операция не произведет изменений.
Использование
wp cap remove <role> <capabilities>...
<role>
— Название роли.<capabilities>...
— Одна или несколько возможностей.
Примеры
- Удаление одной возможности у роли
author
:
$ wp cap remove author edit_posts
Success: Removed 1 capability from 'author' role.
- Удаление нескольких возможностей у роли
editor
:
$ wp cap remove editor edit_themes manage_options
Success: Removed 2 capabilities from 'editor' role.
- Попытка удалить возможность, которой нет у роли:
$ wp cap remove editor fake_capability
Success: Removed 0 capability from 'editor' role.
- Попытка удалить возможность у несуществующей роли:
$ wp cap remove fake_role edit_posts
Error: 'fake_role' role not found.
Примеры сложных операций
- Копирование всех возможностей из одной роли в другую:
$ wp cap list editor | xargs wp cap add author
Success: Added 20 capabilities to 'author' role.
- Удаление всех возможностей у роли
editor
, которые есть уauthor
:
$ wp cap list author | xargs wp cap remove editor
Success: Removed 15 capabilities from 'editor' role.
- Создание кастомной роли с уникальным набором возможностей: Сначала добавьте роль через команду
wp role create
, затем добавьте возможности:
$ wp role create custom_role "Custom Role"
Success: Role with key 'custom_role' created.
$ wp cap add custom_role read edit_posts custom_capability
Success: Added 3 capabilities to 'custom_role' role.
Заключение
Команда wp cap
в WP CLI предоставляет простой и мощный способ управления возможностями ролей WordPress. Она отлично подходит для кастомизации ролей, упрощения управления правами и автоматизации настроек в средах разработки.