Überprüfen Sie, ob add_menu_page vorhanden ist oder nicht


11

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 zum 2. oder nächsten Untermenü hinzu, andernfalls fügen Sie ein neues Menü hinzu und fügen Sie das Plugin dann zum 1. Untermenü hinzu.

Meine Fragen:

  1. Wie überprüfe ich, ob ein Menü vorhanden ist?
  2. Wenn ich eine wiederverwendbare Funktion codiere, die mit jedem Plugin einhergeht, führt dies zu einer Konfliktoption.
  3. Ich kenne die Reihenfolge der Plugin-Version 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'
);

Antworten:


18

Mit dem vierten Parameter von add_menu_page()können Sie my_unique_slugü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.


1
Zu Ihrer Information, Sie können auf die globale selbst zugreifen: global $admin_page_hooks;
Nathan Hangen
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.