Eigenes Menü im Backend anpassen

Eigene Menüs im Backend anlegen ist nicht schwer, WordPress stellt hierzu ausreichend Funktionen zur Verfügung. Jedoch haben diese Menüs einen meiner Ansicht nach unschönen Nachteil. Im Menü selber hat der erste Menüpunkt den gleichen Titel wie das Menü selber. Legt man nun also ein Menü Test an, so steht ganz oben als erster Menüpunkt auch Test (siehe Grafik). Das sieht nicht nur unschön, sondern auch unprofessionell aus. Schöner wäre es, könnte man den ersten Menüpunkt anders benennen. Bei den von WordPress vorgegebene Menüs ist es schließlich genauso.

Der Codex schweigt sich allerdings ein wenig darüber aus wie man es hin bekommt den ersten Menüpunkt anders zu benennen. Anscheinend gibt es auch keinen “offiziellen” Weg um dies zu bewerkstelligen. Mit einen kleinen Kniff geht es dennoch.
Dazu muss man die Variable $submenu global verfügbar machen und kann dann darüber seine Menüpunkte beeinflussen:

global $submenu;
add_menu_page( $page_title, $menu_title, $capability, $menu_slug, [...] );
$submenu[$menu_slug][0][0] = 'My first Menuoption';

$submenu ist ein Array in dem verschiedene Informationen über das Menü gespeichert sind. Es lohnt sich dieses Array mal ausgeben zu lassen und zu schauen welche Informationen man darin findet.

In Bezug auf die Menüs ist $menu ein weiteres interessantes Array. Bei der Masse an Plugins die im Umlauf sind, kommt es nicht selten vor das auch dementsprechend viele Plugins ein zusätzliches Menü einrichten. Da möchte man vielleicht sein eigenes Menü ein wenig von den anderen abgrenzen. Nichts leichter als das, sogar mit Zusatzwert. Man fügt einfach einen Menü-Seperator ein:

global $menu;
$menu[] = array( '', 'read', '', '', 'wp-menu-separator' );

Damit wird ein Seperator eingefügt mit dem man die Menüleiste auf- und zuklappen kann. Steht der Code vor add_menu_page(), wird der Seperator vor dem eigenen Menü eingefügt. Steht er dahinter, wird der Seperator dementsprechend dahinter eingefügt.
Mit count($menü) lässt sich recht einfach feststellen wie viele Menüs bereits existieren und ggf. ein Seperator einfügen. Allerdings werden auch sämtliche bereits vorhandenen Seperatoren mitgezählt, dies sollte man beachten und diese ggf. raus rechnen.
Mit 'wp-menu-separator-last' erzeugt man übrigens einen “leeren” Seperator, also einen Seperator ohne Pfeil wie am Ende des Standard-Menüs von WordPress zu finden ist.