Проверьте, существует ли add_menu_page или нет

11

Я работаю над плагином, который я должен выпустить по частям.

Проблема в том, что если на странице есть меню, добавьте новый плагин во 2-е или следующее подменю, либо добавьте новое меню, а затем добавьте плагин в 1-е подменю.

Мои вопросы:

  1. Как проверить, что существует меню?
  2. Если я пишу многократно используемую функцию, она будет идти с каждым плагином, тогда это вызывает конфликт.
  3. Я не знаю порядок выпуска плагинов.
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'
);
Каушик Кишоре
источник

Ответы:

18

Вы можете использовать четвертый параметр add_menu_page(), то my_unique_slug, чтобы проверить , если страница существует:

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'] список зарегистрированных страниц

Фуксия
источник
1
К вашему сведению, вы можете получить доступ к глобальным самостоятельно: global $admin_page_hooks;
Натан