fix: corregir estructura de menú para mostrar submenú Theme Options

- Cambiar menu slug principal a 'apus-theme-menu' (contenedor)
- Menú principal sin callback (solo contenedor del submenú)
- Submenú 'Theme Options' con slug 'apus-theme-settings' (página real)
- Actualizar hook en enqueue_assets a 'apus-theme_page_apus-theme-settings'
- Limpiar logs de debug

Ahora el menú 'Apus Theme' muestra correctamente el submenú desplegable con 'Theme Options'
This commit is contained in:
FrankZamora
2025-11-13 23:18:00 -06:00
parent 60b3992ca5
commit 77dd809e8c

View File

@@ -18,7 +18,7 @@ class APUS_Admin_Menu {
* Constructor * Constructor
*/ */
public function __construct() { public function __construct() {
add_action('admin_menu', array($this, 'add_menu_page')); add_action('admin_menu', array($this, 'register_menu'));
add_action('admin_enqueue_scripts', array($this, 'enqueue_assets')); add_action('admin_enqueue_scripts', array($this, 'enqueue_assets'));
} }
@@ -26,16 +26,27 @@ class APUS_Admin_Menu {
* Registrar página de admin * Registrar página de admin
* Crea menú de nivel superior en sidebar (NO dentro de Apariencia) * Crea menú de nivel superior en sidebar (NO dentro de Apariencia)
*/ */
public function add_menu_page() { public function register_menu() {
// Menú principal de nivel superior (sin callback para que sea solo contenedor)
add_menu_page( add_menu_page(
'Apus Theme Options', // Page title 'Apus Theme', // Page title
'Apus Theme', // Menu title 'Apus Theme', // Menu title
'manage_options', // Capability 'manage_options', // Capability
'apus-theme-settings', // Menu slug 'apus-theme-menu', // Menu slug (solo identificador, no página real)
array($this, 'render_admin_page'), // Callback '', // Sin callback = solo contenedor
'dashicons-admin-generic', // Icon (WordPress Dashicon) 'dashicons-admin-generic', // Icon (WordPress Dashicon)
61 // Position (61 = después de Appearance que es 60) 61 // Position (61 = después de Appearance que es 60)
); );
// Submenú "Theme Options" (primer y principal subitem)
add_submenu_page(
'apus-theme-menu', // Parent slug
'Theme Options', // Page title
'Theme Options', // Menu title
'manage_options', // Capability
'apus-theme-settings', // Menu slug (página real)
array($this, 'render_admin_page') // Callback
);
} }
/** /**
@@ -53,8 +64,8 @@ class APUS_Admin_Menu {
* Encolar assets (CSS/JS) * Encolar assets (CSS/JS)
*/ */
public function enqueue_assets($hook) { public function enqueue_assets($hook) {
// Solo cargar en nuestra página (toplevel = menú de nivel superior) // Solo cargar en nuestra página
if ($hook !== 'toplevel_page_apus-theme-settings') { if ($hook !== 'apus-theme_page_apus-theme-settings') {
return; return;
} }