Wenn ich mit add_menu_page im Backend einen Menüpunkt anlege, der auch Untermenüpunkte hat, musste ich feststellen, dass add_menu_page mir den Hauptmenüpunkt nochmal als ersten Untermenüpunkt generiert.
Damit sieht ein Menü mit 2 Unterpunkten erstmal ungewollt so aus:
Stellt sich raus, wenn man das verhindern möchte, muss man dem ersten (!) add_submenu_page denselben slug geben wie dem Hauptmenüpunkt:
add_menu_page(
'Ophi Mainmenu',
'Ophi',
'manage_options',
'ophi-mainmenu',
'some-function',
'dashicons-media-code',
10 );
add_submenu_page(
'ophi-submenu-1',
'Ophi Submenu1',
'Submenu1',
'manage_options',
'ophi-mainmenu',
array($this, 'submenuOneAction')
);
add_submenu_page(
'ophi-submenu-2',
'Ophi Submenu2',
'Submenu2',
'manage_options',
'ophi-submenu-two',
array($this, 'submenuTwoAction')
);
Dadurch, dass Hauptmenüpunkt und der erste Submenüpunkt beide den Slug ophi-mainmenu haben, wird der ungewünschte Untermenüpunkt nun durch Submenu1 ersetzt und es sieht nunmehr so aus: