Controlla se add_menu_page esiste o no


11

Sto lavorando a un plugin che devo rilasciare in alcune parti.

Il problema è che se nella pagina è presente un menu, aggiungi il nuovo plug-in al secondo o successivo sottomenu, oppure aggiungi un nuovo menu e quindi aggiungi il plug-in al 1 ° sottomenu.

Le mie domande:

  1. Come verificare l'esistenza di un menu?
  2. Se sto codificando una funzione riutilizzabile, questo andrà con ogni plug-in che causa un'opzione di conflitto.
  3. Non conosco l'ordine della versione del plugin.
add_menu_page(
    'Page Title',
    'Top Menu Title',
    'manage_options',
    'my_unique_slug',
    'my_magic_function'
);
add_submenu_page(
    'my_unique_slug',
    'page title',
    'submenu title',
    'manage_options',
    'my_submenu_slug',
    'my_magic_function_of_submenu'
);

Risposte:


18

È possibile utilizzare il quarto parametro di add_menu_page(), il my_unique_slug, per verificare l'esistenza della pagina:

if ( empty ( $GLOBALS['admin_page_hooks']['my_unique_slug'] ) )
    add_menu_page(
        'Page Title',
        'Top Menu Title',
        'manage_options',
        'my_unique_slug',
        'my_magic_function'
    );

$GLOBALS['admin_page_hooks'] è l'elenco delle pagine registrate.


1
Cordiali saluti, è possibile accedere al globale da solo: global $admin_page_hooks;
Nathan Hangen,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.