Menús
🧩 1. ¿Qué son los menús en un plugin?
Son entradas en el menú lateral del panel de WordPress, accesibles solo para administradores (o según el rol). Puedes:
- Crear una página de menú principal.
- Añadir submenús.
- Mostrar formularios o datos en esas páginas.
✅ 2. Ejemplo básico: crear un menú principal
Código funcional
// Enganchar en el hook admin_menu
add_action('admin_menu', 'mi_plugin_agregar_menu');
function mi_plugin_agregar_menu() {
add_menu_page(
'Título de Página', // Título de la página (aparece en la pestaña del navegador)
'Mi Plugin', // Texto del menú
'manage_options', // Capacidad requerida (sólo administradores)
'mi-plugin-slug', // Slug de la página
'mi_plugin_contenido', // Función que muestra el contenido
'dashicons-admin-generic', // Icono del menú (dashicons)
25 // Posición en el menú
);
}
function mi_plugin_contenido() {
echo "<div class='wrap'><h1>Bienvenido a Mi Plugin</h1><p>Contenido de configuración o información.</p></div>";
}
🔧 Este código crea un nuevo elemento en el menú lateral del admin llamado «Mi Plugin». Al hacer clic, verás el mensaje de bienvenida.
🧩 3. Añadir submenús
Puedes añadir más páginas como submenús del principal:
add_action('admin_menu', 'mi_plugin_agregar_submenus');
function mi_plugin_agregar_submenus() {
add_menu_page('Mi Plugin', 'Mi Plugin', 'manage_options', 'mi-plugin', 'mi_plugin_pagina_principal');
add_submenu_page(
'mi-plugin', // Slug del menú padre
'Opciones del Plugin', // Título de página
'Opciones', // Texto en el submenú
'manage_options',
'mi-plugin-opciones', // Slug único
'mi_plugin_pagina_opciones'
);
add_submenu_page(
'mi-plugin',
'Ayuda del Plugin',
'Ayuda',
'manage_options',
'mi-plugin-ayuda',
'mi_plugin_pagina_ayuda'
);
}
function mi_plugin_pagina_principal() {
echo '<h1>Página principal del plugin</h1>';
}
function mi_plugin_pagina_opciones() {
echo '<h1>Configuración del plugin</h1>';
}
function mi_plugin_pagina_ayuda() {
echo '<h1>Ayuda y documentación</h1>';
}
🎨 4. Usar iconos
Puedes usar cualquier Dashicon oficial de WordPress, por ejemplo:
'dashicons-admin-tools'
'dashicons-email'
'dashicons-forms'
Ejemplo:
'dashicons-email' // Un icono de sobre
⚙️ 5. Añadir formulario en la página de opciones
function mi_plugin_pagina_opciones() {
?>
<div class="wrap">
<h1>Configuración del Plugin</h1>
<form method="post" action="options.php">
<?php
settings_fields('mi_opcion_grupo');
do_settings_sections('mi-plugin-opciones');
submit_button();
?>
</form>
</div>
<?php
}
Y registrar tus opciones con register_setting()
, add_settings_section()
y add_settings_field()
(te lo explico aparte si quieres gestionar configuraciones reales).
🚨 Seguridad y permisos
- Usa
current_user_can('manage_options')
si vas a mostrar contenido sensible. - Solo administradores pueden acceder a estas páginas por defecto.
✅ Resumen
Función | Propósito |
---|---|
add_menu_page() |
Crear un menú principal |
add_submenu_page() |
Crear submenús |
admin_menu hook |
Donde debes enganchar tu código |
manage_options |
Capacidad mínima (admin) |
dashicons-* |
Iconos del menú |