Foros del Web » Creando para Internet » Sistemas de gestión de contenidos » WordPress »

[Mini-tutorial] Ocultar menús laterales en el panel de administración de WordPress

Estas en el tema de [Mini-tutorial] Ocultar menús laterales en el panel de administración de WordPress en el foro de WordPress en Foros del Web. Desaparecer menús en WordPress es muy fácil. Pega este código en el archivo functions.php de tu plantilla y mira el resultado: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código php: ...
  #1 (permalink)  
Antiguo 22/04/2011, 13:31
Avatar de metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.027
Antigüedad: 19 años, 10 meses
Puntos: 832
[Mini-tutorial] Ocultar menús laterales en el panel de administración de WordPress

Desaparecer menús en WordPress es muy fácil. Pega este código en el archivo functions.php de tu plantilla y mira el resultado:

Código php:
Ver original
  1. add_action('admin_menu' , 'adios_entradas');
  2.  
  3. function adios_entradas() {
  4.     global $menu;
  5.     unset($menu[5]);
  6. }
¡Felicitaciones! acabas de volar el menú Entradas en tu panel de administración. Ahora vamos con la parte teórica:

En el núcleo de WordPress se asigna posiciones predeterminadas para los menús nativos de la administración. Dichas posiciones son:

Código PHP:
5   -  Entradas
10  
-  Multimedia
15  
-  Enlaces
20  
-  Páginas
25  
-  Comentarios
60  
-  Primer separador
65  
-  Plugins
70  
-  Usuarios
75  
-  Herramientas
80  
-  Ajustes
100 
-  Segundo separador 
Creo que se capta. Cuando escribimos $menu[5] estaremos invocando al menú Entradas, lo mismo que $menu[25] correspondería a Comentarios. Veamos cómo sería el asunto con varios menús. A continuación le daremos palo a los menús de Entradas, Multimedia y Usuarios mediante un array simple y un bucle:

Código php:
Ver original
  1. function adios_menus() {
  2.     global $menu;
  3.     $menus = array(5 , 10 , 70);
  4.     foreach($menus as $m)
  5.         unset($menu[$m]);
  6. }

¿Aún quieres más? Vamos con algo un poquito más complicado. Ocultaremos estos mismos menús sólo a los usuarios con rol de Autor:

Código php:
Ver original
  1. function adios_menus() {
  2.     global $menu, $current_user, $wpdb;
  3.     get_currentuserinfo();
  4.     if($current_user->wp_capabilities['author']) { // Leer Nota 2
  5.         $menus = array(5 , 10 , 70);
  6.         foreach($menus as $m)
  7.             unset($menu[$m]);
  8.     }
  9. }

Nota: Este procedimiento sólo oculta los menús. Las funciones siguen manteniéndose accesibles. Si deseas suprimir el acceso totalmente, te recomiendo crear nuevos roles y configurarlos a conveniencia. Para gestionar bien esta part te recomiendo el plugin User Role Editor.

Nota 2: Si es el caso, sustituye "wp_capabilities" por [prefijo]_capabilities.


Submenús

Eliminarlos

Vamos a eliminar el submenú "Añadir nueva entrada":

Código PHP:
Ver original
  1. add_action('admin_menu' , 'adios_submenu');
  2.  
  3. function adios_submenu() {
  4.     global $submenu;
  5.     unset($submenu['edit.php'][10]);
  6. }

La explicación: WordPress establece los incrementos son de 5 en 5, donde [0] es el título del menú padre. Es natural esperar que el sistema reserva de manera estática los primeros puestos para los submenús nativos (lo que no impide que sobrescribas lo que sea). El resto se maneja con un bucle en incrementos de 5.

En este punto, el archivo /wp-admin/menu.php resulta una excelente referencia porque puedes identificar fácilmente las variables correspondientes. Por ejemplo, los submenús de "Páginas" están expresados así:

Código PHP:
Ver original
  1. $submenu['edit.php?post_type=page']['numero de posición'];


Agregarlos:

Asignemos un submenú extra al menú "Entradas":

Código PHP:
Ver original
  1. add_action('admin_menu' , 'agregar_submenu');
  2.  
  3. function agregar_submenu() {
  4.     global $submenu;
  5.     $submenu['edit.php'][6] = array( 'Cualquier cosa' , 'cualquier_cosa' , 'cosa.php' );
  6. }

Listo. El parámetro es simple de configurar:

Código PHP:
Ver original
  1. array( 'Nombre del submenú' , 'identificador' , 'ruta-al/archivo.php' );

Probando todo esto noté que al agregar submenús, el sistema ignora los parámetros de prioridad de add_action() y de todas formas lo ubica de último en la lista.


De interés:

- Lista de roles y niveles de acceso: http://codex.wordpress.org/Roles_and_Capabilities

- Estructura de base de datos para _users y _usermeta: http://codex.wordpress.org/Database_...e:_wp_usermeta

Última edición por metacortex; 03/06/2011 a las 13:37 Razón: Añadir info
  #2 (permalink)  
Antiguo 03/06/2011, 11:52
Avatar de phoenixxx  
Fecha de Ingreso: febrero-2005
Mensajes: 11
Antigüedad: 19 años, 2 meses
Puntos: 0
Respuesta: [Mini-tutorial] Ocultar menús laterales en el panel de administración de W

Llego un poco tarde, pero nunca se es demasiado tarde si dicha es buena...
No sabes el gran favor que me has hecho, muchas gracias y enhorabuena por el tutorial.

Solo una pregunta ¿se puede ocultar, por ejemplo solo la opción "Herramientas (Submenu)" del grupo "Herramientas"?
  #3 (permalink)  
Antiguo 03/06/2011, 13:37
Avatar de metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.027
Antigüedad: 19 años, 10 meses
Puntos: 832
Respuesta: [Mini-tutorial] Ocultar menús laterales en el panel de administración de W

Hola phoenixxx, contento por saber que el tuto te sirvió. A partir de tu pregunta lo he extendido otro tanto.

Saludos.

Etiquetas: panel
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 9 personas




La zona horaria es GMT -6. Ahora son las 21:08.