Seit dem ich mich einmal mit dem Thema WordPress beschäftigt habe, bin ich begeistert von der Vielzahl an Möglichkeiten, die dieses kleine CMS an seine Bedürfnisse anzupassen. In der Vergangenheit habe ich hier (Erstellen eines Gästebuchs mit Hilfe von WordPress) eine Möglichkeit veröffentlicht, bei der ich erläutere, wie ich auf einem anderen Blog, wo WP als CMS zum Einsatz kommt, ein Gästebuch mit Hilfe der Kommentarfunktion von WP einrichte. Dieser Artikel ist der meist frequentierte Beitrag auf diesem Blog.
Nun hat die damalige Implementierung des Gästebuchs einen kleinen aber entscheidenden Nachteil, bei Updates der Core-Dateien von WP muss die Funktion des Gästebuches jedesmal wieder neu eingebunden werden, da ich Veränderungen in der comments-functions.php vorgenommen habe.
Nach unzähligen Anfragen und Hilfen habe ich mich deshalb entschlossen, das Gästebuch in ein Plugin auszulagern. So werden die Originaldateien von WP nicht verändert und Updates sind ohne Probleme möglich.
Trotzdem bleibt noch immer Anpassungsarbeit für die Nutzer dieses Plugins, denn ich liefere derzeit nur Templates für das deutsche Theme „default_de“ mit und das englische „default“-Theme. Im folgenden werde ich aber versuchen, einige Hinweise zu geben, so dass es möglich sein sollte, ein Template für das jeweilige Theme anzufertigen.
Anforderungen:
Das Gästebuch funktioniert unter WP 1.5* und WP2.* und wurde bisher unter WP 1.5.2(english) und WP 2.0.2 getestet.
Screenshot:

Installation:
- Sichere deine Datenbank und deine Dateien ! Keine Garantie auf zerstörte Daten !
- Lokal entpacken und gegebenenfalls den Pfad des Theme-Ordners in der guestbook.php im Plugin-Ordner (wp-content/plugins/wp-guestbook) anpassen.
- Bei Verwendung von WP-Paged-Guestbook das Config-File paged-guestbook-config.php im Plugin-Ordner (wp-content/plugins/wp-guestbook) anpassen.
- Upload in …
- deineseite.de/wp-content/themes/DEINTHEME/wp-guestbook.php
- deineseite.de/wp-content/themes/DEINTHEME/wp-guestbook_page.php
- deineseite.de/wp-content/themes/DEINTHEME/wp-guestbook_single.php
- deineseite.de/wp-content/themes/DEINTHEME/wp-paged-guestbook.php
-
- deineseite.de/wp-content/plugins/wp-guestbook/guestbook.php
- deineseite.de/wp-content/plugins/wp-guestbook/paged-guestbook.php
- deineseite.de/wp-content/plugins/wp-guestbook/paged-guestbook-config.php
- Aktiviere das Plugin in der Admin-Oberfläche von WP.
Unter „Schreiben“ –> „Seite schreiben“ …
- erstellts du eine neue Seite mit dem Namen für das Gästebuch, z.B. „Gästebuch“
- dann wählst du das gewünschte Template aus, „Template der Seite“ wähle „WP-Guestbook Page“ für die Darstellung mit Sidebar oder „WP-Guestbook Single“ für die Darstellung ohne Sidebar, nur das Gästebuch
Infos:
-
Sollte es Probleme beim Auffinden des Templates geben, so ändert in guestbook.php (/wp-content/plugins/) den Pfad in Zeile 34:
$include = ABSPATH.'wp-content/themes/default_de/wp-paged-guestbook.php';
-
Wenn ihr wollt, dass der jeweils letzte Beitrag als erster zu lesen ist, dann ändert in Zeile 24 und 28 in der guestbook.php im Ordner /wp-content/plugins/wp-guestbook/ nach:
ORDER BY comment_date"
und in folgenden Code ändern.
ORDER BY comment_date DESC"
- Das Gästebuch arbeitet mit einer Liste <ul>, wenn ihr es in <ol> ändert werden die Enträge nummeriert.
Für den gleichen Effekt habe ich einen Zähler integriert, der nur auskommentiert werden muss, in Zeile 87 der wp-guestbook.php im Theme-Ordner. Der Vorteil dabei ist, dass die laufende Nummer in einem div dargestellt wird, den ihr frei über die class comment-number mit CSS gestallten könnt.
<div class="comment-number"><?php echo $comment_number; ?></div>
Beispiel zur Formatierung des Counter:
div.comment-number {
float: right;
text-align: right;
font-size: 2.5em;
font-weight: bold;
font-family: 'Times New Roman', Times, serif;
padding: 8px 0;
color: #556B2F;
}
-
Wer auf die XHTML-Befehle hinweisen möchte, entkommentiert Zeile 60:
<p><small>
<strong>XHTML:</strong> You can use these tags: <?php echo allowed_tags(); ?>
</small></p>
Paged Guestbook
Viele Leser meiner Seite wünschten sich eine konfigurierbare Darstellung, so dass nur eine bestimmte Anzahl der Einträge gezeigt wird. Diese Funktion ist so in WP nicht vorhanden, deshalb habe ich mit Hilfe des Plugns „Paged Comments“ von Keyvan Minoukadeh diese Funktion integriert.
Zusätzlich gibt es nun, wie auch von vielen Usern erwünscht, eine gefüllte Startseite, wählbare Reihenfolge der Einträge und die Funktion, dass das Plugin auch bei Verwendung von Permalinks funktioniert. Ebenfalls habe ich die Templates in den Theme-Ordner ausgelagert, dadurch muss allerdings machmal ein wenig in den Code der beiden Plugins eingegriffen werden.
Demo:
Mittlerweile gibt es eine Reihe von Siten, die das Plugin einsetzen (siehe Kommentare), ansonsten sollte der Screenshot das Gästebuch verdeutlichen.

Wenn ihr das zweite Plugin „WP-Guestbook-Paged“ aktiviert, werden diese Funktionen genutzt. Im Plugin-Ordner liegt ebenfalls eine Konfigurationsdatei (wp-content/plugins/wp-guestbook/paged-guestbook-config.php), in der ihr eure Einstellungen vornehmen könnt. Nähere Infos dazu liegen den Variablen bei und sollten sich selbst erklären.
Erläuterungen zu Paged Guestbook – Config
Wenn das Plugin Paged Guestbook aktiviert ist, dann müssen alle Konfigurationen in der Datei wp-content/plugins/wp-guestbook/paged-guestbook-config.php vorgenommen werden. Ich habe absichtlich auf eine Einstellungsmöglichkeit im Admin-menu verzichtet, da das Menu in WP dadurch nur überladen würde und die Einstellungen eigentlich nur einmal vorgenommen werden.
Es besteht die Möglichkeit folgende Option zu verändern:
- Link zum wp-paged-guestbook.php im Theme-Order – hier kann, falls das Theme nicht richtig erkannt wird, ein direkter Link zur Datei hinterlegt werden
Beispiel:
$paged_guestbookcomments->template_path = 'wp-content/themes/default/wp-paged-guestbook.php';
- Einträge pro Seite – Anzahl der Einträge, bis ein Seitenumbruch erstellt wird
Beispiel:
$paged_guestbookcomments->per_page = 10;
- Eintragsreihenfolge – Darstellung der Reihenfolge, wenn der Seitenumruch aktiv ist (dieser ist erst aktiv, wenn genügend Einträge dafür vorhanden sind)
Beispiel 1: Erster Eintrag zu erst darstellen, 1,2,3,…x
$paged_guestbookcomments->ordering = 'ASC';
Beispiel 2: Letzter Eintrag zu erst darstellen, x,….3,2,1
$paged_guestbookcomments->ordering = 'DESC';
- Letzte Seite auffüllen – ja oder nein
Beispiel 1:
$paged_guestbookcomments->fill_last_page = true;
Beispiel 1:
$paged_guestbookcomments->fill_last_page = false;
- Seitenumfang – Anzahl der Seitennummern die aktuell angezeigt werden, < < 4 5 (6) 7 8 >>
Beispiel:
$paged_guestbookcomments->page_range = 11;
- ‚Alle anzeigen‘ Reihenfolge bzw. bevor es nicht genügend Einträge für Sietenumbruch gibt – Wenn der User ‚Alle anzeigen‘ wählt, so wird hier die Reihenfolge des Listings vorgegeben
Beispiel 1: Erster Eintrag zu erst, 1,2,3,…x
$paged_guestbookcomments->show_all_ordering = 'ASC';
Beispiel 2: Letzter eintrag zu erst, x,….3,2,1
$paged_guestbookcomments->show_all_ordering = 'DESC';
- Standard Seite – Die erste Seite, die beim Aufruf des Gaestebuchs geladen werden soll
Beispiel 1: auto, abhängig vom der Eintragsreihenfolge
$paged_guestbookcomments->default_page = 'auto';
Beispiel 2: first
$paged_guestbookcomments->default_page = 'first';
Beispiel 1: last
$paged_guestbookcomments->default_page = 'last';
- Text für title „Older entries“
Beispiel:
$paged_guestbookcomments->older = 'Ältere Einträge';
- Text für title „Newer entries“
Beispiel:
$paged_guestbookcomments->newer = 'Neuere Einträge';
- Text für „Alle anzeigen“
Beispiel:
$paged_guestbookcomments->show_all = 'Alle anzeigen';
Bei Problemen mit der Darstellung muss auch hier ein neues Template für die Seite oder auch für die Kommentarfunktion des Gästebuchs erstellt werden.
Mehr Infos dazu im folgenden Abschnitt.
Templates erstellen
Nicht alle WP-User benutzen das default_de-Theme. Wer ein anderes Theme benutzt kann sich gern an mich wenden und ich versuche zu helfen oder entnimmt den folgenden Hinweisen den Code für die Implementierung.
Info:
Sollte ich zu Themen schon die notwendigen Dateien erarbeitet haben, so sind sie auf Gästebuch Plugin Themes zu finden.
Prinzipiell wird das Gästebuch über folgenden Code aufgerufen:
<?php if (function_exists('paged_guestbookcomments_template')) paged_guestbookcomments_template();
else
if (function_exists('guestbook_template')) guestbook_template();
else
comments_template();
?>
In jeden Theme gibt es eine PHP-Seite, welche die Darstelleung der Beiträge übernimmt, oft ist es die index.php, page.php oder die single.php. Kopiert euch die Seite unter einem anderen Namen, z.B. „wp-guestbook_page.php“.
In dieser Datei müsst ihr nun das Gästebuch über den Code aufrufen, s.o. .
Vergebt einen Template Namen, damit ihr die Seite aus eurem Theme dann auch in eurer WP-Oberfläche findet. Das macht ihr, in dem ihr an den Start der Seite folgende Zeilen unterbringt.
<?php
/*
Template Name: WP-Guestbook Page
Theme: default_de
*/
?>
Außerdem müsst ihr das Template des Gästebuchs aufrufen. Sucht dazu den Aufruf des Kommentartemplates – comments_template();
und ändert es in:
<?php if (function_exists('paged_guestbookcomments_template')) paged_guestbookcomments_template();
else
if (function_exists('guestbook_template')) guestbook_template();
else
comments_template();
?>
Die Seite speichern und in euren Theme-Ordner uploaden. Nun sollte das Template beim Erstellen der Seite „Gästebuch“ unter „Template der Seite“ zu finden sein. Auswählen und ansehen. Gegebenenfalls müsst ihr an der PHP-Seite für die Darstellung der Gästebucheinträge Veränderungen vornehmen, damit es entsprechend euren Vorstellungen aussieht.
Dazu nutzt ihr die comments.php eures Themes und speichert sie unter dem Namen wp-guestbook.php und legt sie ebenfalls im Theme-Ordner ab. Zusätzlich solltet ihr, bei Bedarf die funktion des Counters einbinden. Am besten ist es, wenn ihr eure neue wp-guestbook.php mit der vorhanden, die ich mitliefere auf basis von default_de, vergleicht.
Counterfunktion
<h3 id="comments"><?php comments_number( ...
<?php $comment_number=1; ?>
...
<div class="comment-number"><?php echo $comment_number; ?></div>
<cite><?php comment_author_link() ?></cite>
...
<?php $comment_number++; ?>
<?php endforeach; /* end for each comment */ ?
Wenn ihr das zweite Plugin WP-Guestbook-Paged ebenfalls nutzt, so arbeitet die wp-paged-guestbook.php als Template für die Darstellung der Einträge. Hier müsst ohr ebenfalls die comments.php nutzen und daraus eine neue wp-paged-guestbook.php erstellen. Vergleicht den Code und ergänzt die Zeilen aus der original wp-paged-guestbook.php.
Als erstes den Pfad anzupassen:
<?php
if ('wp-paged-guestbook.php' == basename($_SERVER['SCRIPT_FILENAME']))
...
und vor und nach dem Aufruf der Einträge, also vor und nach der ol- oder ul-Liste folgender Code einzubinden. Der stellt die Navigation der Seiten dar.
<!-- START PLUGIN WP PAGED GUESTBOOK -->
<!-- WP-Paged-Guestbook page numbers -->
<?php if ($paged_guestbookcomments->pager->num_pages() > 1): ?>
<p class="comment-page-numbers">
<?php _e("Pages:"); ?> <?php paged_guestbookcomments_print_pages(); ?>
</p>
<?php endif; ?>
<!-- End WP-Paged-Guestbook page numbers -->
Nun muss noch die Möglichkeit des Counters eingefügt werden. Nach dem List-Element – li:
<!-- Commentnumber with class -->
<div class="comment-number">
<?php echo $comment_number; $comment_number += $comment_delta; ?>
</div>
Als letztes muss der Code für das Eintragen eines neuen Gästebucheintrags noch nach oben geholt werden, da der in der comments.php unter den Kommentaren erscheint. Sucht dazu diesen Code, wenn das Theme einen ähnlichen Aufbau hat. Alles ausschneiden und über die Ausgabe der Einträge einfügen.
<?php if ('open' == $post->comment_status) : ?>
...
<form action="<?php echo get_option('siteurl'); ?>
/wp-comments-post.php" method="post" id="commentform">
...
</form>
<?php endif; // If registration required and not logged in ?>
<?php endif; // if you delete this the sky will fall on your head ?>
Info:
Sollte ich zu Themen schon die notwendigen Dateien erarbeitet haben, so sind sie auf Gästebuch Plugin Themes zu finden.
Download:
Ist die Arbeit nicht 1 Euro wert?
Jede Spende wird dankbar angenommen und ermöglicht das weitere Arbeiten an freier Software.
Möchtest du mehr oder anders spenden, so besuche meine Wunschliste.
Download als zip-Datei: wp-guestbook.zip – 6 KByte
Download V2 (incl. Seitenumbruch und Counter):
Download als Zip-Datei: wp-guestbook2.zip – 20 KByte
Download V2 englisch (Theme: default) (incl. Seitenumbruch und Counter):
Download als Zip-Datei: wp-guestbook2_english.zip – 15 KByte