Permitir acceso a editores a plugins añadidos
He creado un plugin personalizado que quiero que los usuarios con rol de Editor puedan utilizar.
Encontré un enlace aquí sobre cómo permitir que los editores puedan editar menús ¿permitir a los editores editar menús?
usando este código.
$role_object = get_role( 'editor' );
// añadir la capacidad $cap a este objeto de rol
$role_object->add_cap( 'edit_theme_options' );
Entonces, ¿hay alguna manera posible de permitir que los Editores tengan acceso a mis plugins personalizados añadidos?

Después de una búsqueda rápida, encontré mi respuesta aquí
Cambiando todas las ocurrencias de 'manage_options' por 'edit_pages' en los archivos de mis Plugins.
Los editores tienen permiso para usar plugins con Edit_pages

Probé tu sugerencia pero no funcionó para mí.
¿Puedes dar más detalles de cómo lograrlo?, por favor

Bien, ¿necesitas un fragmento de código de Plugin de ejemplo en Github? Eso debería funcionar

Por favor, agrega el siguiente código.
function activate_plugin_name() {
$role = get_role( 'editor' );
$role->add_cap( 'manage_options' ); // capacidad
}
// Registramos nuestro hook de activación
register_activation_hook( __FILE__, 'activate_plugin_name' );
function deactivate_plugin_name() {
$role = get_role( 'editor' );
$role->remove_cap( 'manage_options' ); // capacidad
}
// Registramos nuestro hook de desactivación
register_deactivation_hook( __FILE__, 'deactivate_plugin_name' );`

Este es solo un caso de uso de la necesidad de activar un plugin para el rol de usuario "editor". El plugin se llama bulk images to posts. Este plugin está activo solo para el rol de administrador. Por lo tanto, para activarlo para el rol de "editor", debes ir al archivo "bulk-images-to-posts.php" y buscar la función big_create_menu() (responsable de crear un menú en la barra lateral del administrador) Ahora, si reemplazas "manage_options" por "edit_pages" verás que en el menú de administración del rol "editor", el plugin se activa. Nuevamente, este es solo un ejemplo de un caso de uso para mostrar el efecto de "edit_pages"
Aquí hay un fragmento de código que muestra esto:
// crear un nuevo menú de nivel superior
global $bip_admin_page;
$bip_admin_page = add_menu_page(__('Subidor de Imágenes Masivas a Entradas','bulk-images-to-posts'), __('Masivo','bulk-images-to-posts'), 'edit_pages', 'bulk-images-to-post','bip_upload_page','dashicons-images-alt2');
// crear páginas de submenú
add_submenu_page( 'bulk-images-to-post', __('Imágenes Masivas a Entradas - Subir','bulk-images-to-posts'), __('Subidor','bulk-images-to-posts'), 'edit_pages', 'bulk-images-to-post');

Gracias Liz Eipe por tu solución, pero desafortunadamente eso no funcionó para mí. Lo que sí funcionó fue cambiar el 'capability' para todos los hooks de add_menu_page() y add_submenu_page().
Básicamente, el valor de capability que estableces corresponde al acceso para diferentes tipos y combinaciones de usuarios. Puedes ver todas las capacidades posibles y su acceso aquí.
Yo elegí 'publish_posts' como valor, lo que da acceso a Super Admin, Admin, Editor y Autor a la página de administración que registras con tus hooks.
Este era mi código antes:
add_menu_page(
'My Menu Title',
'custom menu',
'administrator', // Solo acceso para admin
'myplugin/myplugin-admin.php',
'',
plugins_url( 'myplugin/images/icon.png' ),
3
);
Y ahora con acceso para Admin, Editor y Autor cambió a:
add_menu_page(
'My Menu Title',
'custom menu',
'publish_posts', // Acceso para Admin, Editor, Autor
'myplugin/myplugin-admin.php',
'',
plugins_url( 'myplugin/images/icon.png' ),
3
);
Una última nota pequeña; no olvides cambiar esto para todas las páginas de administración del plugin a las que quieras que otros usuarios tengan acceso, como todas las páginas de submenú.
