Как получить все возможности существующей роли пользователя
Как получить ВСЕ возможности (capabilities) существующей роли пользователя (например, Автор)? Я буду использовать это для быстрого дублирования существующей роли пользователя, затем создания новой роли и назначения или удаления возможностей для новой пользовательской роли.

Я рекомендую не изменять стандартные роли и возможности, это может помочь избежать проблем в будущем, когда у вас будет множество пользовательских ролей и прав.
Чтобы ответить на ваш вопрос, приведу пример: мне нужна новая роль/группа пользователей, которая имеет почти все права Администратора, но не может редактировать плагины и тему. Вот как это сделать:
Допустим, вы хотите скопировать существующие права Администратора, сделайте это так:
$admin_role_set = get_role( 'administrator' )->capabilities;
Вы можете создать новую роль пользователя с помощью add_role, подробности см. в справочнике. Затем мы можем использовать список прав, который получили в шаге #1:
$role = 'content_admin'; $display_name = 'Content Admin'; add_role( $role, $display_name, $admin_role_set );
Проверив список Ролей и Прав в справочнике, мы увидим, что нужно удалить права
edit_plugins
иedit_themes
. Это можно сделать с помощьюremove_cap()
:remove_cap( 'content_admin', 'edit_plugins' ); remove_cap( 'content_admin', 'edit_themes' );

На 3-м шаге, который вы описываете, не должно ли значение роли, передаваемое в метод remove_cap
, быть 'content_admin' вместо 'editor', если вы продолжаете пример удаления возможности редактировать плагины и тему для новой созданной пользовательской роли?
