Seitentemplate Gästebuch mit umgekehrter Reihenfolge

Hinweis: Dieser Artikel ist älter als zwei Jahre (letzte Änderung: 11. Februar 2009) und evtl. nicht mehr aktuell.

So, wir haben mal ein bisschen mit dem Seitentemplate und der comments.php für eine extra Gästebuch-Seite ab WordPress 2.7 rumgespielt, damit man in den neuen Themes auch ohne Plugins für die Gästebuch-Seite eine umgekehrte Sortierreihenfolge bestimmen kann.
In einem Blog werden normalerweise die neusten Kommentare unten angestellt. Dies ist in WordPress nicht anders. Ab Version 2.7 kann man die General-Einstellungen (für den gesamten Blog) unter Einstellungen -> Diskussion ändern, was aber nicht jeder mag. Für die, die also nur das Gästebuch anders sortieren wollen haben wir eine Lösung gefunden.

Dieser Tipp ist wie gesagt erst ab Themes für WordPress 2.7 möglich, da mit dieser Version das Kommentar-Template komplett umgestellt wurde. Wer sein Theme auf die neuen Funktionen hin prüfen oder ändern will, findet hier (en.) oder hier (dt.) schöne Anleitungen.

Folgendes wäre also denkbar:

Das Seitentemplate „page_guestbook.php“ anlegen, d.h. kopiere den Inhalt der page.php deines Themes in die neue Datei und füge ganz oben im Code noch folgendes hinzu

<?php
/*
Template Name: Guestbook
*/
?>

Dann ersetzt du

<?php comments_template(); ?>

durch

<?php comments_template(DIRECTORY_SEPARATOR.'comments-guestbook.php'); ?>

So wird eine extra comments-guestbook.php included.

Dann die eigene Datei „comments-guestbook.php“ anlegen. Dazu kopiere den Inhalt der comments.php deines Themes in die neue Datei. In dieser kann das

<?php wp_list_comments(); ?>

z. B. durch

<?php wp_list_comments(array('type'=>comment, 'max_depth'=>'2', 'reverse_top_level'=>DESC, 'avatar_size'=>32, 'reply_text'=>'Antworten')); ?>

ersetzt werden.
Durch den Parameter „reverse_top_level=DESC“ wird die Reihenfolge umgedreht … der Rest ist wohl selbsterklärend. Andere Parameter sind im codex zu finden: http://codex.wordpress.org/Template_Tags/wp_list_comments#Parameters

So, jetzt nicht vergessen die ganzen neuen Dateien per FTP ins Theme-Verzeichnis hochzuladen.

Dann nur noch das Eingabeformular nach oben holen und es sieht wie ein Gästebuch aus ;-)
Das Eingabeformular sollte ab WP 2.7 mit einem Div-Container mit der ID „respond“ beginnen und mit dem schließenden div aufhören:

<div id="respond">
<h3><?php comment_form_title('Leave a Reply', 'Leave a Reply to %s'); ?></h3>
<div id="cancel-comment-reply">
<?php cancel_comment_reply_link() ?>
</div>
...
...
</div>

Zum Schluss legst du im Backend von WordPress eine statische Seite „Gästebuch“ an und wählst unter Template das „Guestbook“ aus. FERTIG!

Empfehle uns: email facebook google plus twitter

Artikel Informationen

  • Erstellt am Donnerstag, 22. Januar 2009 um 18:55 (Letzte Änderungen 11. Februar 2009, 18:40) und abgelegt unter WordPress mit den Tags:
  • Kommentare zu diesen Eintrag im Kommentar Feed Feed.
  • Du kannst einen Kommentar hinterlassen. Pingback ist im Augenblick nicht erlaubt.

9
Hinterlasse einen Kommentar

6 Comment threads
3 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
6 Comment authors
  Abonnieren  
neuste älteste beste Bewertung
Benachrichtige mich zu:

danke für deine Hilfe. :)

Da hätte ich vielleicht erst mal meine comments.php neu aufbauen und noch mal im Backend genauer hinschauen sollen, bevor ich hier loströte.
Oh mann, wie peinlich! :oops:

Hi Max,

das Einzige was imho noch fehlt, ist etwas zum Blättern, damit die Gästebuchseite nicht bis in den Keller reicht, wenn viele Kommentare da sind.

Gruß
Klaus

p.s. du bist Schuld das ich meine comments.php jetzt neu aufbaue (basierte bisher auf dem alten Classic.Theme) :)

Hi Klaus,

deshalb hatten wir einen Link auf die weiteren Parameter von wp_list_comments() gepostet:
http://codex.wordpress.org/Template_Tags/wp_list_comments#Parameters
Dort ist dann auch die Rede von max_depth und per_page. Einfacher und vor allem für alle Kommentare kannst du es aber über die Diskussions-Einstellungen von WP machen: http://codex.wordpress.org/Settings_Discussion_SubPanel

Ich hoffe das hilft dir erst mal bei deinem Vorhaben weiter.

Grüße
im-Tal.net

GENAU was ich gesucht habe, vielen Dank! :))

Hallo Maxe,
habe auch nach einer Möglichkeit gesucht die Kommentare umzudrehen und bin dabei über deinen Artikel gestolpert. Funktioniert auch wunderbar, leider gab es Probleme mit dem Plugin „Greg’s Threaded Comment Numbering“. Und zwar drehte sich die Nummerierung der Kommentare nicht herum. Auf http://counsellingresource.com/features/2009/03/31/threaded-comment-plugin-updated/ kannst du ab Kommentar 8 unser Gespräch verfolgen. Wie sich rausstellte muss der korrekte Aufruf ‘reverse_top_level’=>1 lauten, damit auch die umgekehrte Nummerierung der Kommentare funktioniert.
Hoffe das hilft anderen weiter, die ebenfalls ihre Kommentare schön nummeriert haben wollen.

Gruß Whoppy

Danke Whoppy für dein Kommentar. Wir haben mal das Greg’s Threaded Comment Numbering Plugin installiert und für unser Gästebuch „‚reverse_top_level’=>DESC“ stehen lassen. Es funktioniert dort auch mit DESC. Aber danke für den Hinweis, beobachten wir mal weiter.

Das hört sich ja gut an, nur ein Problem habe ich.
Du schreibst:
Zum Schluss legst du im Backend von WordPress eine statische Seite “Gästebuch” an und wählst unter Template das “Guestbook” aus. FERTIG!
Wenn ich eine neue Seite erstelle, habe ich nicht wo ich ein Template auswählen kann.
Was mache ich da falsch?

PS.: Übrigens es ist super das mit deinen Tipps.

Lg,
Rewolve44
Ich verwende WP 2.7

Ähhm, müsste aber. Ist dein Theme für WP 2.7 oder noch für WP<2.7 (hast du es schon vor 2.7 verwendet)? Hast du das Seitentemplate richtig angelegt (s. oben die erste Codebox)? Und die neuen Dateien auch ins Themeverzeichnis hochgeladen? Danach sollte eigentlich auch ein Template im Bearbeitungsmodus der Seite zu wählen sein.

Edit: hab den Artikel noch ein bisschen überarbeitet. Oben findest du jetzt auch Links um dein Theme auf die neuen Funktionen zu prüfen/ändern.

Danke für den Tipp! :-) Weil ich mein BLOGhäuschen-Theme gerade aktualisert habe, habe ich auch diese Gästebuchlösung umgesetzt und so wieder ein PlugIn eingespart.