Wenn ein Benutzer Einstellungen verändern können soll, benötigen Sie dafür meist eine eigene Einstellungsseite. Zu einer solchen Seite gehört auch ein entsprechender Menüeintrag. WordPress gibt hier zwei Funktionen vor, die Sie bei der Umsetzung unterstützen:
add_menu_page()
Legt ein neues Top-Level-Menü an.add_submenu_page()
Legt ein Second-Level Menü an.
Ein Top-Level Menü erstellen
WordPress definiert die add_menu_page()
-Funktion wie folgt:
<?php
function add_menu_page( $page_title, $menu_title, $capability, $menu_slug, $function = '', $icon_url = '' , $position = null ) {
...
}
?>
Wobei gilt:
- $page_title
(string)
Dies ist der Titel einer Seite. Also der Text der als Titel im Browserfenster angezeigt wird. - $menu_title
(string)
Der Linktext der im Menü angezeigt wird. - $capability
(string)
Das Recht (eines Benutzers) der auf die Seite zugreifen darf. Das ist in der Regel ein String. Welche Rechte existieren, finden Sie im Kapitel 7 “Benutzer und Rechte”. - $menu_slug
(string)
Ein “Slug” ist ein einzigartigen Bezeichner für das Menü. Er wird an die URL des Links angehängt, wenn auf den Menüpunkt geklickt wird. Somit weiß WordPress später, welche Seite aufzurufen ist. - $function
(string|array|function)
Die Bezeichnung der Funktion die WordPress aufrufen soll, wenn die Seite gerendert wird. Sie ist zuständig für die Darstellung des Inhalst. Dies kann ein String, ein Array oder aber auch eine anonyme Funktion sein. - $icon_url
(string)
Die URL zum Menü-Icon welches neben der Link-Bezeichnung ($menu_title
) angezeigt werden soll.
Alternativ kann hier eine Dashicon-CSS-Anweisung stehen (z.B.dashicons-universal-access-alt
). Die Dashicons sind eine Sammlung an Icons, die Standardmäßig in das Backend von WordPress eingebunden werden. Sie finden das Dashicon-Projekt auf Github. - $position
(int)
Die Position bzw. die Reihenfolge an der der neue Menüpunkt angezeigt werden soll.
Sie können nun ein Menü wie folgt erstellen:
<?php
add_action( 'admin_menu', 'mm_admin_menu' );
function mm_admin_menu() {
add_menu_page(
'Mein Titel',
'Mein Menü',
'manage_options',
'mm-meins',
'mm_main_page_render',
plugins_url( 'images/pacman.png', __FILE__ )
);
}
function mm_main_page_render() {
echo '<h1>Mein Titel</h1>';
}
?>
Folgendes ist zu beachten: