web-dev-qa-db-fra.com

Vérifier si add_menu_page existe ou non

Je travaille sur un plugin que je dois publier par parties.

Le problème est que s'il y a un menu dans la page, ajoutez le nouveau plugin au deuxième ou au prochain sous-menu, sinon 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 suis en train de coder une fonction réutilisable, cela va aller avec chaque plugin, alors ça crée une option de conflit.
  3. Je ne connais pas l'ordre de publication 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'
);
11
Kaushik Kishore

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.

16
fuxia