Plugins (VIII) Crear un menú de nivel superior
Al crear un plugin en wordpress tenemos dos formas de crearle un menú personalizado, la que vamos a ver en esta entrada es la primera de ellas, crear un menú de nivel superior o como veremos próximamente, ampliando un menú existente.
El método de crear un menú de nivel superior resulta muy interesante cuando vamos a proceder a realizar un plugin que requiere múltiples páginas de configuración. Para proceder a ello necesitamos utilizar la función add_menu_page y cuya sintaxis es:
<?php add_menu_page(titulo_pagina, titulo_menu, capbility, menu_slug, funcion, icon_url, posicion); ?>
Donde:
- titulo_pagina: Texto utilizado para el titulo HTML entre las etiquetas title
- titulo_menu: Titulo que va a utilizarse para el nombre del menú en el escritorio
- capability: Nivel del usuario mínimo necesario para ver el menú.
- menu_slug: Nombre de slug exclusivo del menú.
- funcion: Muestra el contenido para la página de ajustes del menú.
- icon_url: Marca la ruta a icono personalizado para el menú (por defecto es images/generic.png)
- posicion: Posición del menú en el orden de menús. Por defecto aparece al final.
Podemos crear elementos de submenú para nuestro menú utilizando add_submenu_page de la siguiente forma:
add_submenu_page(padre, pag_title, menu_title, capability, menu_slug, [funcion]);
De esta manera no es muy difícil el poder crear nuestros menús para nuestros plugins… que supongo a muchos era algo que les habrá dado tantos dolores de cabeza como a mi cuando estaba empezando, pero como vemos en el siguiente ejemplo es muy sencillo de conseguir…
//preparamos la accion para que cargue la función add_action ('admin_menu', 'prowp_crear_menu'); //hacemos la función que cargará el menú function prowp_crear_menu(){ //creamos el menú de nivel superior add_menu_page('Plugin censurador de Palabrotas', 'Plugin de palabrotas', 'manage_options', 'prowp_main_menu', 'prowp_main_plugin_page', plugins_url('/images/icono.png', __FILE__)); //creamos dos submenus add_submenu_page('prowp_main_menu', 'Configurar Palabrotas', 'settings', 'manage_options', 'palabrotas_settings', 'prowp_settings_page'); add_submenu_page('prowp_main_menu', 'Página de soporte', 'Soporte', 'manage_options', 'palabrotas_soporte', 'prowp_support_page'); }
Lo cual nos da como resultado, la imagen que aparece a continuación:
¿Pero, cómo funciona esto?
Pues en primer lugar se invoca a la acción admin_menu que desencadena una vez que esta establecida la estructura básica de menús del panel de administración y tras ello nuestra función personalizada prowp_crear_menu().
Una vez dentro de esta función ya empieza la magia, aunque lo único que hemos hecho es seguir los pasos descritos anteriormente;
- los dos primero parámetros describen el titulo de la página y el nombre del menú
- se establece el nivel de acceso (manage_options) es solo para que accedan los administradores
- se establece el slug exclusivo del menú; prowp_main_menu
- se introduce la función que llamará al ejecutarse (aun no definida)
- la url del icono del menú que queremos que aparezca
Tras la creación del menú principal, desarrollamos dos menús secundarios utilizando la función add_submenu_page() donde:
- enviamos el slug de menú del nivel superior, indicando de esta manera quien es el padre
- se establece un título de página y el título del menú
- se vuelve a poner el nivel de acceso (manage_control)
- se crea un slug exclusivo para el submenú
- se invoca a la función personalizada para generar la página de ajustes de cada menú.
De esta forma es como podemos ir creando los menús y submenús para nuestros plugins.
En la próxima entrada de Curso de WP haremos el menú a partir de un menú ya existente.
Espero que os haya servido de ayuda y no olvidéis dejar algún comentario.