Ich habe vor einiger Zeit in diesem Artikel beschrieben, wie ihr ohne Plugins mittels der WordPress-Kommentarfunktion ein Gästebuch einrichtet. Der Artikel hat ja nun schon einige Zeit auf dem Buckel und zwischenzeitlich haben sich doch ein paar Änderungen bei WordPress, insbesondere beim Aufruf des Kommentarformulars, ergeben.

Da sich der Artikel immer noch großer Beliebtheit erfreut, habe ich mir gedacht, ich bringe ihn mal auf den neuesten Stand und zeige am Beispiel des aktuellen WordPress-Standardthemes „Twenty Eleven“, wie ein Gästebuch mit angepasster Kommentarfunktion realisiert werden kann.

Das fertige Gästebuch wird so aussehen:

Okay. Fangen wir an.

Vorlagen erstellen

Zunächst gilt es zwei Templates aus dem WordPress-Theme Verzeichnis zu kopieren. Kopiert die Datei

page.php und benennt sie guestbook.php

als Vorlage für das Gästebuch.

Nun kopiert ihr die Datei

comments.php und benennt sie guestbook_comments.php

als Vorlage für die Gästebucheinträge und das Gästebuchformular.

Templates anpassen

Wir müssen die beiden Dateien ein wenig verändern. Öffnet die Datei guestbook.php und fügt am Anfang vor allen anderen Einträgen

<?php
/*
Template Name: Gästebuch
*/
?>

ein. Durch diesen Eintrag erkennt WordPress, dass es sich um ein Template handelt, welches wir beim Erstellen des Gästebuchs als Vorlage auswählen können.

Zweite Änderung: wir müssen einen Verweis auf die guestbook_comments.php herstellen, damit nicht das Standard-Kommentartemplate comments.php aufgerufen wird.

Ändert folgenden Eintrag

<?php comments_template( '', true ); ?>

in

<?php comments_template( '/guestbook_comments.php', true ); ?>

Schließt die Datei und öffnet nun die guestbook_comments.php.

Hier ändern wir zunächst die Überschriften. Aus

<?php
printf( _n( 'One thought on &ldquo;%2$s&rdquo;', '%1$s thoughts on &ldquo;%2$s&rdquo;', get_comments_number(), 'twentyeleven' ),
number_format_i18n( get_comments_number() ), '<span>' . get_the_title() . '</span>' );
?>

macht ihr

<?php
printf( _n( 'Ein Eintrag im &ldquo;%2$s&rdquo;', '%1$s Einträge im &ldquo;%2$s&rdquo;', get_comments_number(), 'twentyeleven' ),
number_format_i18n( get_comments_number() ), '<span>' . get_the_title() . '</span>' );
?>

Standard Kommentarformular anpassen

Das Standard-Kommentarformular von WordPress ist logischerweise auf Kommentare ausgelegt. Es lässt sich allerdings mit ein wenig Aufwand auf vielfältige Art und Weise anpassen. Aufgerufen wird das Formular durch den Eintrag

<?php comment_form(); ?>

in der comments.php bzw. der guestbook_comments.php.

Ohne Anpassungen sieht das Kommentarformular in „Twenty Eleven“ wie folgt aus:

Wir wollen dem Formular eine andere Überschrift, eine andere Buttonbeschriftung und eine andere Bezeichnung für das Kommentarfeld verpassen.

Fügt dazu in die guestbook_comments.php folgenden Code ein:

<?php
$comments_args = array(
'title_reply'=>'Deinen Gästebucheintrag hinzufügen',
'label_submit'=>'Gästebucheintrag absenden',
'comment_field' => '<p class="comment-form-comment"><label for="comment">Deine Nachricht</label><br /><textarea id="comment" name="comment"></textarea></p>'
);

comment_form($comments_args);?>

und löscht den Eintrag

<?php comment_form(); ?>

Das Formular wird dann so aussehen:

Im WordPress Codex findet ihr weitere Informationen zu den zahllosen Anpassungsmöglichkeiten des Formulars.

Kommentarformular über die Gästebucheinträge verschieben

Generell werden bei Artikeln zunächst die abgegebenen Kommentare und darunter das Kommentarformular angezeigt. Wer mag, kann das für das Gästebuch umdrehen, so dass zunächst das Formular und danach erst die Gästebucheinträge zu sehen sind.

Verschiebt dazu den Aufruf des Kommentarformulars

<?php
$comments_args = array(
'title_reply'=>'Deinen Gästebucheintrag hinzufügen',
'label_submit'=>'Gästebucheintrag absenden',
'comment_field' => '<p class="comment-form-comment"><label for="comment">Deine Nachricht</label><br /><textarea id="comment" name="comment"></textarea></p>'
);

comment_form($comments_args);?>

nach oben direkt hinter diese Zeile

<?php // You can start editing here -- including this comment! ?>

Das Gästebuch anlegen

Als letzten Schritt müssen wir das Gästebuch selber noch anlegen, da wir bisher nur die Vorlagendateien bearbeitet haben. Erstellt eine neue Seite, schreibt eine nette Einleitung für euer Gästebuch und wählt als Template ‚Gästebuch‘.

Speichern und fertig. Vergesst nicht die Kommentar für die Seite zu aktivieren.