Capacidad de menú en WordPress para múltiples roles de usuario
¿Es posible especificar dos grupos de usuarios (por ejemplo, administradores y editores) en el campo de capacidad del menú de administración? Intenté lo siguiente pero no funciona:
add_submenu_page(
'my-top-level-handle',
'Título de la página',
'Título del submenú',
array('administrator', 'editor'), // Esto no es válido como capacidad
'my-submenu-handle',
'my_magic_function'
);
Mensaje de error:
Warning: Illegal offset type in isset or empty in C:\wamp\www\wordpress\wp-includes\capabilities.php on line 712

El parámetro de capacidad de la función add_submenu_page() solo puede aceptar una única capacidad, por lo que si estás utilizando los roles integrados, puedes seleccionar una capacidad de la larga lista que tanto administradores como editores tengan en común (usa cualquiera de estas libremente):
- moderate_comments
- manage_categories
- manage_links
- unfiltered_html
- edit_others_posts
- edit_pages
- edit_others_pages
- edit_published_pages
- publish_pages
- delete_pages
- delete_others_pages
- delete_published_pages
- delete_others_posts
- delete_private_posts
- edit_private_posts
- read_private_posts
- delete_private_pages
- edit_private_pages
- read_private_pages

Como mencionó t31os, puedes usar capacidades en lugar de roles allí. Una forma de hacer esto es usar las capacidades principales del núcleo. (Un método más avanzado es agregar una capacidad personalizada a los roles que elijas). Las capacidades predeterminadas se encuentran en wp-admin/includes/schema.php
dentro de las funciones llamadas por populate_roles()
.
Si estás usando roles/capacidades estándar, puedes especificar solo administradores y editores mediante la capacidad level_7
o edit_others_posts
o varias otras.
