web-dev-qa-db-de.com

So entfernen Sie doppelte Untermenünamen für Menüelemente der obersten Ebene in einem Plugin?

Ich habe ein benutzerdefiniertes Plugin für WordPress geschrieben.

Sobald ich ein Untermenü zum Plugin hinzufüge, erhalte ich einen doppelten Eintrag für das Element der obersten Ebene:

 enter image description here 

Ich möchte den zweiten Menüpunkt "TopLevel" deaktivieren, damit er so aussieht:

 enter image description here 

Also, wie deaktiviere ich das Top-Level-Untermenü?

3
hitautodestruct

Wenn Sie nicht möchten, dass das Menü "TopLevel" eine benutzerdefinierte Seite darstellt, können Sie Folgendes verwenden:

  add_menu_page( 'TopLevel', 'TopLevel', 'MENU_CAP_LVL', 'MENU_SLUG', 'MENU_CB' );
  add_submenu_page( 'MENU_SLUG', 'SubMenu', 'SubMenu', 'MENU_CAP_LVL', 'SUB_MENU_SLUG', 'SUB_MENU_CB' );
  add_submenu_page( 'MENU_SLUG', 'SubMenu-A', 'SubMenu-A', 'MENU_CAP_LVL', 'SUB_MENU_A_SLUG', 'SUB_MENU_A_CB' );
  remove_submenu_page('MENU_SLUG','MENU_SLUG');

Klicken Sie auf "TopMenu", um zum ersten "SubMenu" weiterzuleiten und zu verhindern, dass "TopLevel" dupliziert wird.

Eine alternative Lösung wäre das Umbenennen der Bezeichnung "TopLevel" im Untermenü durch Hinzufügen einer Untermenü-Entität mit demselben page_slug, menu_slug, function (Rückruf) wie in add_menu_page:

  add_menu_page( 'TopLevel', 'TopLevel', 'MENU_CAP_LVL', 'MENU_SLUG', 'MENU_CB' );
  add_submenu_page( 'MENU_SLUG', 'MyRenamedTopLevelMenu', 'MyRenamedTopLevelMenu', 'MENU_CAP_LVL', 'MENU_SLUG', 'MENU_CB' );
  add_submenu_page( 'MENU_SLUG', 'SubMenu', 'SubMenu', 'MENU_CAP_LVL', 'SUB_MENU_SLUG', 'SUB_MENU_CB' );
6
Ignat B.