• News
  •  
  • Tools
  •  
  • Bücher
  •  
  • Fotos
  •  
  • Impressum
  •  
  • Be social!
  • RSS
  • FaceBook
  • Google Buzz
  • Mister Wong
  • Delicious
  • Xing
  •  
 

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&auml;ndige Fu&szlig;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>'.
       '';
}
?>
Admin-Menü

Admin-Menü

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.

eigene Optionsseite im DashBoard

eigene Optionsseite im DashBoard

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

 

Der Guru 2.0 Blog lebt von Deinem Kommentar

Es existieren drei Antworten zu diesem Post

Edeltraut von [web]
schrieb am 29. 12. 2010 um etwa 15 Uhr:
Hi Ich vermisse den Facebook Like Button? :-)
Guru 2.0 von [web]
schrieb am 29. 12. 2010 um etwa 16 Uhr:
Der wurde schon vor einer Woche veröffentlicht...
Olli
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

Deine Meinung ist dem Guru 2.0 wichtig





XHTML - Du kannst diese Tags benutzen:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

 
  • Werbung

  •  
  • Diesen Post empfehlen


     

     

     

     

     
    Stumbleupon
     
    Wikio
  •  
  • Das war eine Hilfe?

  •  
  • Du brauchst Papier?

  •