Vérifiez si add_menu_page existe ou non


11

Je travaille sur un plugin que je dois publier en plusieurs parties.

Le problème est que, s'il y a un menu dans la page, ajoutez le nouveau plugin au 2ème ou au sous-menu suivant, ajoutez un nouveau menu, puis ajoutez le plug-in au 1er sous-menu.

Mes questions:

  1. Comment vérifier qu'il existe un menu?
  2. Si je code une fonction réutilisable, cela ira avec chaque plugin, ce qui provoquera une option de conflit.
  3. Je ne connais pas l'ordre de sortie du 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'
);

Réponses:


18

Vous pouvez utiliser le quatrième paramètre de add_menu_page(), le my_unique_slug, pour vérifier si la page existe:

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'] est la liste des pages enregistrées.


1
Pour info, vous pouvez accéder au monde par lui-même: global $admin_page_hooks;
Nathan Hangen
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.