So überprüfen Sie, ob das Admin-Menü der obersten Ebene in WordPress vorhanden ist oder nicht

Lesezeit: 2 Minuten

Benutzer-Avatar
Sonne

Ich möchte überprüfen, ob ein bestimmtes Top-Level-Menü bereits in der WordPress-Admin-Oberfläche vorhanden ist oder nicht:

  • Wenn es vorhanden ist, möchte ich ein Untermenü darin erstellen.
  • Andernfalls möchte ich das Menü der obersten Ebene und dann ein Untermenü erstellen.

Ich habe ein paar kleine Plugins, die ich in einem einzigen Top-Level-Menü organisieren möchte, und dann ein Untermenü für jedes Plugin. Aber wie kann ich überprüfen, ob das Menü der obersten Ebene vorhanden ist?

Benutzer-Avatar
Jo Walker

Sie können dies mit der globalen Variable tun $menu Dies gibt ein Array oder Elemente zurück, diese Elemente haben einen bestimmten Index, in dem der Name des Menüs gespeichert wird. Sie können das Array durchlaufen, um den erforderlichen Index zu finden, und wenn er gefunden wird, fügen Sie einfach die Untermenüseite hinzu, die Sie sonst erstellen können es.

global $menu;
$menuExist = false;
foreach($menu as $item) {
    if(strtolower($item[0]) == strtolower('My Menu Name')) {
        $menuExist = true;
    }
}
if(!$menuExist)
    // Create my menu item

  • Beachten Sie, dass Sie den obigen Code wie folgt einhaken müssen:add_action( 'admin_menu', 'register_my_plugin' ); um auf die globale Variable $menu zuzugreifen.

    – Spießfeuer

    14. Januar 2015 um 5:23 Uhr


Eine weitere Möglichkeit ist, die Funktion zu nutzen menu_page_url():

Holen Sie sich die URL für den Zugriff auf eine bestimmte Menüseite basierend auf dem Slug, mit dem sie registriert wurde.

Wenn der Slug nicht ordnungsgemäß registriert wurde, wird keine URL zurückgegeben.

Verwendungszweck

Die Funktion nimmt zwei Argumente entgegen:

  1. Eine Zeichenfolge, die den Top-Menü-Slug enthält
  2. Boolesche Flagge $echodie standardmäßig auf true gesetzt ist.

Der zweite Parameter ist der wichtige Teil: Setzen Sie ihn auf false um einen Rückgabewert zu erhalten. Wenn Sie dies nicht tun, gibt die Funktion die URL zurück, anstatt sie zurückzugeben.

Beispielcode:

<?php
$menu_url = menu_page_url( 'some-plugin', false );

if ( $menu_url ) {
    // The top menu exists, so add a sub-menu item.
    add_submenu_page( 'some-plugin', 'Sample Page', 'My Menu', 'read' );
} else {
    // No top menu with that slug, we can create it.
    add_menu_page( 'Sample Page', 'My Menu', 'read', 'some-plugin' );
}

1351980cookie-checkSo überprüfen Sie, ob das Admin-Menü der obersten Ebene in WordPress vorhanden ist oder nicht

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy