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:
@@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user