Tabla de contenidos
Para crear menús y submenus en el administrador de WordPress, tenemos una serie de funciones que hacen la labor realmente sencilla. Pero primero debemos pensar donde lo vamos a poner y luego si es mejor crear un menú padre (como ajustes, herramientas, usuarios, páginas, etc) o es mejor un submenú que por ejemplo este dentro de ajustes.
Menú padre o superior
Es recomendable crear estos menús si el plugin puede tener muchas páginas con muchos ajustes. Se trata de tener una visión general de usabilidad. Para ello debemos usar la función:
add_menu_page('title_menu','titulo_menu','nivel_usuario','slug','function','icono','posicion');
- title_menu: Será el metadata <title>.
- titulo_menu: Nombre del menú.
- nivel_usuario: Nivel de usuario mínimo para ver el plugin. Lo que en WordPress se conoce como capability. https://codex.wordpress.org/Roles_and_Capabilities
- slug: Nombre del slug, debe ser diferente a cualquier otro plugin o tema.
- function: Es nombre de la función que llama cuando estas dentro del menú.
- icono: Es la url del icono que se visualiza. No es obligatorio, si no se indica se visualiza uno por defecto.
- posicion: Dentro del listado de menús. No es obligatorio, si se deja aparecerá abajo.
Ahora podemos añadir a nuestro menú un submenú:
add_submenu_page('slug_menu_padre','title_menu','titulo_menu','nivel_usuario','slug','function');
- slug_menu_padre: Es la referencia al menú padre.
Podemos agrupar la creación de menús en un hook action:
add_action('admin_menu','mis_menus'); function mis_menus(){ add_menu_page('title_menu','titulo_menu','nivel_usuario','slug','function','icono','posicion'); add_submenu_page('slug_menu_padre','title_menu','titulo_menu','nivel_usuario','slug','function'); }
En muchas ocasiones debemos añadir nuestro plugin a un menú de los que viene por defecto (por ejemplo: Ajustes):
add_options_page('title_menu','titulo_menu','nivel_usuario','slug','function');
- add_options_page: Para añadir en Ajustes.
- add_post_page: Para añadir en Entradas.
- add_media_page: Para añadir en Multimedia.
- add_dashboard_page: Para añadir en Escritorio.
- add_pages_page: Para añadir en Páginas.
- add_comments_page: Para añadir en Comentarios.
- add_plugins_page: Para añadir en Plugins.
- add_theme_page: Para añadir en Apariencia.
- add_users_page: Para añadir en Usuarios.
- add_management_page: Para añadir en Herramientas.
Menús ocultos
Una de las necesidades más frecuentes es tener una página que se abrirá cuando pinchemos en un enlace como por ejemplo una tabla de pestañas, un botón de ayuda, etc. en estos casos queremos una página pero que no éste asociada a ningún menú ni submenú del lateral de WordPress.
add_submenu_page(NULL,'Ayuda','Ayuda','manage_options','id_menu','menu_fc');
En este caso en vez de añadir el slug del menú al que queremos asociar el submenú, le indicamos que sea NULL. Ahora solo queda poner el enlace:
<a href="?page=id_menu">Enlace></a>