Programación de Plugins WordPress: Crear un sub-menú en un menú existente

Publicado el Deja un comentario

En el anterior tutorial ( Plugins WordPress: Crear un menu y sub-menú en el pane de administración) vimos cómo crear un nuevo menú personalizado en el backend de WordPress y además, también creamos 2 sub-menús. Para ello utilizamos las funciones:

  • add_menu_page()
  • add_submenu_page()

Esto lo ejecutábamos en el hook 'admin_menu'.

Pues bien, como ya hemos visto esto, me gustaría explicar cómo crear un sub-menú de un menú existente. Pero no de un menú como el que creamos en el tutorial anterior puesto que eso ya lo vimos. Lo único que tienes que hacer es utilizar la función add_submenu_page() e indicar el menú padre del que descenderá tu sub-menú.

Ahora lo que vamos a hacer es crear un sub-menú bajo los menús que ya existen en WordPress por defecto ya que cada uno tiene su función específica. No te preocupes porque es muy sencillo.

Para dejar claro de a qué me estoy refiriendo cuando digo crear un sub-menú de un menú existente, me refiero a crear sub-menú de los menús que vienen por defecto en la instalación de WordPress. Aprovecho la lista que pongo a continuación para indicar qué función corresponde a cada uno de los menús:

  • Escritorio  -->  add_dashboard_page()
  • Entradas  -->  add_posts_page()
  • Medios  -->  add_media_page()
  • Páginas  -->  add_pages_page()
  • Comentarios  -->  add_comments_page()
  • Apariencia  -->  add_theme_page()
  • Plugins  -->  add_plugins_page()
  • Usuarios  -->  add_users_page()
  • Herramientas  -->  add_management_page()
  • Ajustes  -->  add_options_page()

A continuación crearé el directorio y el fichero para este plugin. En este caso le voy a llamar "OAF Create Sub-menu". Y tanto el directorio como el fichero php tendrán el nombre de: "oaf-create-submenu".

El código fuente inicial para el fichero "oaf-create-submenu.php" es el siguiente:

<?php
/*
Plugin Name: OAF Create Sub-menu
Plugin URI: https://oscarabadfolgueira.com/programacion-de-plugins-wordpress-crear-un-sub-menu-en-un-menu-existente
Description: This plugin creates an admin sub-menu in existing menu
Version: 1.0
Author: Oscar Abad Folgueira
Author URI: https://oscarabadfolgueira.com
License: GPLv2
License URL: http://www.gnu.org/licenses/gpl-2.0.html
*/
add_action( 'admin_menu', 'oaf_create_submenu');
function oaf_create_submenu() {
	add_dashboard_page ( 'OAF Settings', 'OAF Settings', 'manage_options', 'oaf_create_submenu_plugin', 'oaf_create_submenu_function' );
}
function oaf_create_submenu_function () {
}
?>

En primer lugar observamos que hemos creado el add_action en el hook "admin_menu" com en el ejemplo del anterior tutorial. Hasta aquí bien porque también le estamos diciendo que ejecute la función "oaf_create_submenu".

Ahora bien, la función que utilizamos en "add_dashboard_page()" que nos permitirá añadir elementos de sub-menú en el menú "Escritorio" del panel de administración de WordPress.

Ya veis que en este caso, a diferencia de la función que ya habíamos utilizado de "add_submenu_page()", no debemos indicarle el menú "padre" puesto que ya está en la función en sí misma.

Y ¿Qué es lo que hace esto?

Pues no hace otra cosa que crear un plugin:

programacion-plugins-wordpress-crear-submenu-01

Que al activarlo nos crea un sub-menú que desciende directamente del menú "Escritorio" como se puede ser a continuación:

programacion-plugins-wordpress-crear-submenu-03
programacion-plugins-wordpress-crear-submenu-02

Interesante, ¿verdad?

Supongo que ya estaréis pensando la cantidad de cosas que se pueden hacer con esto. Y eso que no es nada del otro mundo porque todavía no hemos creado las páginas de opciones que crearemos en otro tutorial.

Para utilizar el resto de funciones que he indicado anteriormente, os pongo el código fuente y algunas capturas con el plugin completo:

<?php
/*
Plugin Name: OAF Create Sub-menu
Plugin URI: https://oscarabadfolgueira.com/
Description: This plugin creates an admin sub-menu in existing menu
Version: 1.0
Author: Oscar Abad Folgueira
Author URI: https://oscarabadfolgueira.com
License: GPLv2
License URL: http://www.gnu.org/licenses/gpl-2.0.html
*/
add_action( 'admin_menu', 'oaf_create_submenu');
function oaf_create_submenu() {
	add_dashboard_page ( 'OAF Settings', 'OAF Settings', 'manage_options', 'oaf_create_submenu_plugin', 'oaf_create_submenu_function' );
	add_posts_page ( 'OAF Settings', 'OAF Settings', 'manage_options', 'oaf_create_submenu_plugin', 'oaf_create_submenu_function' );
	add_media_page ( 'OAF Settings', 'OAF Settings', 'manage_options', 'oaf_create_submenu_plugin', 'oaf_create_submenu_function' );
	add_pages_page ( 'OAF Settings', 'OAF Settings', 'manage_options', 'oaf_create_submenu_plugin', 'oaf_create_submenu_function' );
	add_comments_page ( 'OAF Settings', 'OAF Settings', 'manage_options', 'oaf_create_submenu_plugin', 'oaf_create_submenu_function' );
	add_theme_page ( 'OAF Settings', 'OAF Settings', 'manage_options', 'oaf_create_submenu_plugin', 'oaf_create_submenu_function' );
	add_users_page ( 'OAF Settings', 'OAF Settings', 'manage_options', 'oaf_create_submenu_plugin', 'oaf_create_submenu_function' );
	add_management_page ( 'OAF Settings', 'OAF Settings', 'manage_options', 'oaf_create_submenu_plugin', 'oaf_create_submenu_function' );
	add_options_page ( 'OAF Settings', 'OAF Settings', 'manage_options', 'oaf_create_submenu_plugin', 'oaf_create_submenu_function' );
}
function oaf_create_submenu_function () {
}
?>

También os dejo el enlace al plugin en Github para que lo descarguéis si queréis.

Pues bien, ya veis que esto es muy sencillo. Lo único que hay que saber de momento es algunas funciones y cómo usarlas. Fácil, ¿verdad?

Espero que estos tutoriales os ayuden a cogerle el gusanillo a la programación para WordPress.

Por cierto, podéis desactivar el plugin, ok?

Saludos y hasta la próxima!

Deja una respuesta

Tu dirección de correo electrónico no será publicada.