Capacidad de menú en WordPress para múltiples roles de usuario

30 mar 2011, 18:30:04
Vistas: 18.8K
Votos: 3

¿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

3
Comentarios

No se supone que debas pasar un rol (o roles) al parámetro de capacidad. Dale una capacidad que solo los editores (o superiores) tengan y la página estará disponible tanto para administradores como para editores.

t31os t31os
30 mar 2011 18:57:21

@t31os Por favor deja de publicar tus respuestas en los comentarios o no podré darte la reputación que mereces. :)

fuxia fuxia
31 mar 2011 01:12:36

@toscho - A veces solo pretendo comentar y responder sin siquiera darme cuenta, soy demasiado impaciente para pensar antes de hacer clic en ese botón... lo siento.. :)

t31os t31os
31 mar 2011 01:28:03
Todas las respuestas a la pregunta 2
0

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
30 mar 2011 19:40:59
1

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.

30 mar 2011 19:27:42
Comentarios

level está obsoleto desde hace años. Podría eliminarse en un futuro próximo.

fuxia fuxia
31 mar 2011 01:14:29