Предоставление редакторам доступа к добавленным плагинам
Я создал пользовательский плагин, к которому хочу предоставить доступ пользователям с ролью Редактора.
Я нашел ссылку о том, как разрешить редакторам редактировать меню разрешить редакторам редактировать меню?
используя этот код.
$role_object = get_role( 'editor' );
// добавляем возможность $cap для этого объекта роли
$role_object->add_cap( 'edit_theme_options' );
Итак, есть ли возможность предоставить Редакторам доступ к моим пользовательским плагинам?

После быстрого поиска я нашел ответ здесь
Путем замены всех вхождений 'manage_options' на 'edit_pages' в файлах моего плагина.
Редакторам разрешено использовать плагины с Edit_pages

Я попробовал ваш совет, но у меня не сработало.
Не могли бы вы подробнее объяснить, как это реализовать?

Хорошо, вам нужен пример кода плагина на Github? Это должно сработать

Пожалуйста, добавьте следующий код.
function activate_plugin_name() {
$role = get_role( 'editor' ); // Получаем роль редактора
$role->add_cap( 'manage_options' ); // Добавляем возможность управления настройками
}
// Регистрируем хук активации
register_activation_hook( __FILE__, 'activate_plugin_name' );
function deactivate_plugin_name() {
$role = get_role( 'editor' ); // Получаем роль редактора
$role->remove_cap( 'manage_options' ); // Удаляем возможность управления настройками
}
// Регистрируем хук деактивации
register_deactivation_hook( __FILE__, 'deactivate_plugin_name' );`

Это пример использования, когда необходимо активировать плагин для роли "редактор". Плагин называется Bulk Images to Posts. По умолчанию этот плагин активен только для роли администратора. Чтобы активировать его для роли "редактор", необходимо перейти в файл "bulk-images-to-posts.php" и найти функцию big_create_menu() (которая отвечает за создание меню в левой панели администратора).
Если заменить "manage_options" на "edit_pages", вы увидите, что в меню администратора для роли "редактор" плагин становится активным.
Это всего лишь один пример использования, демонстрирующий эффект от применения "edit_pages"
Вот фрагмент кода, иллюстрирующий это:
// создаем новое меню верхнего уровня
global $bip_admin_page;
$bip_admin_page = add_menu_page(__('Bulk Images to Posts Uploader','bulk-images-to-posts'), __('Bulk','bulk-images-to-posts'), 'edit_pages', 'bulk-images-to-post','bip_upload_page','dashicons-images-alt2');
// создаем подменю
add_submenu_page( 'bulk-images-to-post', __('Bulk Images to Post - Upload','bulk-images-to-posts'), __('Uploader','bulk-images-to-posts'), 'edit_pages', 'bulk-images-to-post');

Спасибо Liz Eipe за ваше решение, но, к сожалению, оно не сработало для меня. То, что сработало — это изменение 'capability' для всех хуков add_menu_page() и add_submenu_page().
По сути, значение capability, которое вы устанавливаете, соответствует доступу для различных типов и комбинаций пользователей. Все возможные capability и соответствующий доступ можно посмотреть здесь.
Я выбрал значение 'publish_posts', которое дает доступ к странице админки, зарегистрированной через хуки, Супер Админу, Админу, Редактору и Автору.
Вот мой код до изменений:
add_menu_page(
'My Menu Title',
'custom menu',
'administrator', // Только доступ для админа
'myplugin/myplugin-admin.php',
'',
plugins_url( 'myplugin/images/icon.png' ),
3
);
А теперь с доступом для Админа, Редактора и Автора он изменился на:
add_menu_page(
'My Menu Title',
'custom menu',
'publish_posts', // Доступ для Админа, Редактора, Автора
'myplugin/myplugin-admin.php',
'',
plugins_url( 'myplugin/images/icon.png' ),
3
);
И последнее небольшое замечание: не забудьте изменить это для всех страниц админки плагина, к которым вы хотите предоставить доступ другим пользователям, включая все подменю.
