Compruebe si add_menu_page existe o no

11

Estoy trabajando en un complemento que tengo que liberar en partes.

El problema es que si hay un menú en la página, agregue el nuevo complemento al segundo o siguiente submenú; de lo contrario, agregue un nuevo menú y luego agregue el complemento al primer submenú.

Mis preguntas:

  1. ¿Cómo comprobar que existe un menú?
  2. Si estoy codificando una función reutilizable, eso irá con cada complemento y eso causará una opción de conflicto.
  3. No sé el orden de lanzamiento del complemento.
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'
);
Kaushik Kishore
fuente

Respuestas:

18

Puede usar el cuarto parámetro de add_menu_page(), el my_unique_slug, para verificar si la página 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'] es la lista de páginas registradas.

fuxia
fuente
1
Para su información, puede acceder al mundo por su cuenta: global $admin_page_hooks;
Nathan Hangen