diff --git a/admin/includes/class-admin-menu.php b/admin/includes/class-admin-menu.php index 178b901c..e5ae0af5 100644 --- a/admin/includes/class-admin-menu.php +++ b/admin/includes/class-admin-menu.php @@ -18,7 +18,7 @@ class APUS_Admin_Menu { * Constructor */ 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')); } @@ -26,16 +26,27 @@ class APUS_Admin_Menu { * Registrar página de admin * 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( - 'Apus Theme Options', // Page title + 'Apus Theme', // Page title 'Apus Theme', // Menu title 'manage_options', // Capability - 'apus-theme-settings', // Menu slug - array($this, 'render_admin_page'), // Callback + 'apus-theme-menu', // Menu slug (solo identificador, no página real) + '', // Sin callback = solo contenedor 'dashicons-admin-generic', // Icon (WordPress Dashicon) 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) */ public function enqueue_assets($hook) { - // Solo cargar en nuestra página (toplevel = menú de nivel superior) - if ($hook !== 'toplevel_page_apus-theme-settings') { + // Solo cargar en nuestra página + if ($hook !== 'apus-theme_page_apus-theme-settings') { return; }