Eine eigene Optionen-Seite im Dashobard von WordPress
Heute wieder mal einen etwas längeren Codeschnippsel. Ich denke mir, dass es für einige von euch interessant ist einen eigenen Bereich im DashBoard zu haben, um euer Blog besser zu steuern. Was ihr damit anstellen könnt, ist nur Deiner Phanatsie überlassen. Ich verwende als Beispiel eine Veränderung in der Fußzeile. Falls die Option aktiv ist wird eine vollständige Fußzeile, sonst nur eine verkürzte dargestellt.
Ihr könnt aber beispielsweise ein Eingabefeld für Inserattexte oder Tracking-Codes erzeugen und diese dann automatisiert in eurem Blog verarbeiten.
Hier zuerst einmal der komplette Quellcode, welchen Du in die Datei functions.php deines aktiven Themas kopieren musst. Falls Du diese Datei nicht hast, kannst Du sie einfach anlegen. Vergiss aber nicht am Anfang (1. Zeile) den Code <?php und als letzte Zeichen in der letzten Zeile ?> zu schreiben.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | < ?php //Zusaetzliches Admin-Panel add_action('admin_menu', 'guruNewMenu'); //Menuepunkt erzeugen function guruNewMenu() { //neuen Punkt in der linken Leiste erzeugen add_menu_page('eigener Admin-Bereich', 'Admin-Options', 'administrator', __FILE__, 'guruAdminPage'); add_action('admin_init', 'regGuruSettings'); } //Optionsseite registrieren function regGuruSettings() { register_setting('guruSetGroup', 'guruFooter'); } //Seite der Optionen anzeigen function guruAdminPage() { $guruOpt = get_option('guruFooter'); $radioOpt = ''; if ($guruOpt == 1) {$radioOpt = 'checked';} echo '<div class="wrap"><h2>Administrator Options</h2>'. '<form method="post" action="options.php">'; settings_fields('guruSetGroup'); echo '<table class="form-table">'. '<tr valign="top">'. '<th scope="row">vollständige Fußzeile</th>'. '<td><input type="checkbox" name="guruFooter" value="1" '.$radioOpt.'/></td>'. '</tr>'. '</table>'. '<p class="submit">'. '<input type="submit" class="button-primary" value="Speichern" />'. '</p>'. '</form>'. ''; } ?> |
Die ersten Zeilen erzeugen mit einer Aktion den Menüpunkt in der Seitenleiste deines Dashboards.
Danach kommt die Funktion um auch eine Optionsseite zu erzeugen. Die guruNewMenu() erledigt genau diese Aufgabe. Als Parameter werden eben die Werte für die Titel und Hilfetexte angegeben.
Danach folgt regGuruSettings(). Diese Funktion enthält für jedes Eingabefeld der Options-Seite eine eigene Zeile. Die Parameter dieser Zeilen sind der Namen der Feldgruppe und der Name des Datenfelds, wie er in HTML beim Attribut name=”…” angegeben wurde.
Als letztes wird mit der Funktion guruAdminPage() das Eingabeformular erzeugt. Da es hier einfacher ist, alles in einem Codesegment anzuzeigen, habe ich mich für eine Ausgabe mit dem Befehl echo …; entschieden.
Natürlich könnt Ihr diese Funktion in eine eigene Datei auslagern und eine Mischung aus php/HTML erzeugen.
Wichtig ist hier die Abfrage des gespeicherten Optionswertes mit get_option() und auch das Festlegen der Feldgruppe mit settings_fields(‘guruSetGroup’);. Den Parameter des letzten Befehls kennst Du schon. Du hast in ja in der vorhergehenden Funktion verwendet.
Ich habe in meiner footer.php die Abfrage if (get_option(‘guruFooter’) == 1) {…} eingebaut um nun die Ausgabe der Fusszeile zu steuern.
Ich hoffe euch einen interessanten neuen WordPress-Trick gezeigt zu haben und freue mich auf viele Kommentare.
Falls Ihr beim WordPress-Codex direkt nachschauen wollt, ist der Post Creating Options Pages [EN] der richtige Einstiegspunkt.
Weitere Posts zu diesem Thema
- Die Größe aller Vorschaubilder in WordPress anpassen
Da ich mich gerade mit einem neuen Theme auseinandersetze bin ich in den letzten Tagen auf folgendes Problem gestossen: Sobald die Größe der Vorschaub [...] - Wieviele Twitter Follower habe ich?

Die Frage beantwortest Du dir sicher schon über die verschiedensten Tools, oder? Aber ich hätte einfach die Anzahl der Followers in meinem DashBoard [...] - Die Schrift im DashBoard-Editor von WordPress verändern
Ist zwar ein wenig unüblich, aber es geht. Wer unbedingt will, kann die Schrift des WYSIWYG-Editors tinyMCE von WordPress verändern. Ihr braucht dazu [...] - Die 10 letzten geänderten oder neu angelegten Posts ausgeben

Heute habe ich wieder eine Frage für euch. Allesandro verorgt mich immer wieder mit neuen und interessanten Fragen (Danke, Allesandro!). Ich suche ei [...] - Bessere Hilfe für den Anfänger mit dem WordPress-DashBoard

An und für sich ist die in WordPress integrierte Hilfe ja nicht so schlecht. Aber es gibt nichts, was man nicht noch verbessern kann. Entweder es feh [...]






Momentan sind 0 Benutzer, 0 Gäste & 0 Crawler online.
Seit 2007 wurden 1090 Posts veröffentlicht & kein Post wird erscheinen.
Es wurden 4619 Kommentare geschrieben & 216 TrackBacks gesetzt.
Es existieren drei Antworten zu diesem Post
schrieb am 29. 12. 2010 um etwa 15 Uhr:Hi Ich vermisse den Facebook Like Button? :-)
schrieb am 29. 12. 2010 um etwa 16 Uhr:Der wurde schon vor einer Woche veröffentlicht...
schrieb am 10. 3. 2011 um etwa 15 Uhr:Hey Für das aktuelle Theme funktioniert es super. Aber wie funktioniert es unabhängig vom Theme? Für eine Infobox z.b. Grüße