web-dev-qa-db-fra.com

Comment supprimer le nom de sous-menu en double pour les éléments de menu de niveau supérieur dans un plugin?

J'ai écrit un plugin personnalisé pour Wordpress.

Une fois que j'ajoute un sous-menu au plugin, je reçois une double entrée pour l'élément de niveau supérieur:

 enter image description here 

Je voudrais désactiver le deuxième élément de menu "TopLevel" afin qu'il ressemble à ceci:

 enter image description here 

Alors, comment puis-je désactiver le sous-menu Top leve?

3
hitautodestruct

Si vous ne voulez pas que le menu "TopLevel" représente une page personnalisée, vous pouvez utiliser:

  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');

De cette manière, cliquez sur "TopMenu" pour transférer le 1er "Sous-menu" et empêcher la duplication de "TopLevel".

Une solution alternative consisterait à renommer l’étiquette "TopLevel" dans le sous-menu en ajoutant une entité de sous-menu avec les mêmes page_slug, menu_slug, function (rappel) comme dans 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.