wake-up-neo.net

Prüfen Sie, ob add_menu_page existiert oder nicht

Ich arbeite an einem Plugin, das ich in Teilen veröffentlichen muss.

Das Problem ist, wenn es ein Menü auf der Seite gibt, fügen Sie das neue Plugin dem 2. oder dem nächsten Untermenü hinzu. Andernfalls fügen Sie ein neues Menü hinzu und fügen Sie das Plugin dem 1. Untermenü hinzu.

Meine Fragen:

  1. Wie überprüfe ich, ob ein Menü existiert?
  2. Wenn ich eine wiederverwendbare Funktion codiere, die zu jedem Plugin gehört, führt dies zu Konflikten.
  3. Ich kenne die Reihenfolge der Veröffentlichung des Plugins nicht.
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

Sie können den vierten Parameter von add_menu_page(), den my_unique_slug, verwenden, um zu überprüfen, ob die Seite vorhanden ist:

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'] ist die Liste der registrierten Seiten.

16
fuxia