Eine eher schwierige Aufgabe: Das eigene Template der Allgemeinheit zugänglich machen und ein Optionsmenü im Backendbereich integrieren, welches Einstellungen wie Hauptkategorien der Startseite oder Google-Analytics-Code für den Header erlaubt.
Der Ablauf ist recht simple und mit wenigen Funktionen kann man ein Design-Menü seines Templates im Backend einfügen. Die dafür benötigte Funktion lautet:
add_object_page ();
Diese Funktion erstellt einen neuen Menüpunkt im Backend. Die Gestaltungsmöglichkeiten sind vielfältig und über Funktionsparameter zu übergeben. Diese sind im einzelnen:
add_object_page( $page_title, $menu_title, $capability,
$menu_slug, $function = '', $icon_url = '') {}
Die Parameter in Übersicht:
- $page_title - Der Titel der Einstellungsseite
- $menu_title - Der Name des Menü
- $capability - Userlevel welches benötigt wird, die Einstellungsseite zu sehen ( 0 – 10)
- $menu_slug – Slug, welcher in der Browserzeile erscheint
- $function – Funktion, welche aufgerufen werden soll, um den Inhalt der Einstellungsseite auszugeben
- $icon_url – URL zu dem Icon, welches im Menü angezeigt werden sol
Untermenüs werden ähnlich wie das Hauptmenü hinzugefügt. Die dazu nötige Funktion lautet:
add_submenu_page();
mit den Parametern:
$parent_slug, $page_title, $menu_title, $capability, $menu_slug, $function
- $parent_slug – Bezieht sich auf den Wert, welcher bei $menu_slug vergeben wurde
- $page_title – selbsterklärend
- $menu_title – selbsterklärend
- $capability – selbsterklärend
- $menu_slug – selbsterklärend
- $function – selbsterklärend
Ein Mini-Beispiel, welches ein Menü in das Backend zaubert, welches Altchemnitz heißt, ein Favicon besitzt und ein Untermenü mit Namen Einstellungen beherbergt. Der Codeaufbau ist das absolute Minimum und beinhaltet einzig das Abrufen, nicht das Abspeichern von Information.
function altchemnitz_backend() {
add_object_page (
'Altchemnitz: Theme Options',
'Altchemnitz',
10,
'altchemnitz_main',
'altchemnitz_wendeschleife',
'http://martin-goerner.com/backend-fav.png'
);
add_submenu_page('altchemnitz_main',
'Headereinstellungen',
'Headereinstellungen',
10,
'altchemnitz_options',
'altchemnitz_h_einstellungen'
);
function altchemnitz_h_einstellungen($page){
$analytics = get_option('altchemnitz_analytics','default');
echo 'aktuelle Google-Analytics-ID: ' . $analytics;
}
function altchemnitz_wendeschleife($page){
$options = get_option('altchemnitz_kategorien','default');
echo $options;
}
}
add_action('admin_menu', 'altchemnitz_backend');
Das ganze sieht dann so aus:
