Anpassung des Themes an WP 2.7 – die Kommentare
Du hast ein WP Theme, dass Du sehr gerne magst. Du magst es aber auch mit WP 2.7 nutzen und vor allem die Threaded Kommentare hättest Du gern. Hier eine Anleitung wie Du die threaded Kommentare in Deinem bestehenden Theme nutzen kannst.
- Threaded Comments

WP 2.7 bietet die Möglichkeit der threaded Kommentare. Dies bedeutet, dass man direkt zu einem Kommentar antworten kann. Im Adminbereich kann man einstellen wie “tief” -also wie oft man auf einen Kommentar antworten kann. Ob man dieses Feature der threaded comments überhaupt nutzen mag. Außerdem bietet WP 2.7 auch das “Blättern” bei Kommentaren an. Ich gebe allerdings zu bedenken, dass dies viel internen doppelten Content erzeugt.
Wie auch immer die comments.php für das WP 2.7 sieht völlig anders aus, als alle bisherigen und außerdem muß man in der comments.php was ändern, selbst wenn man die threaded Kommentare nicht nutzen mag. Sonst funktionieren die Cookies nicht mehr.
Achtung: diese Anpassungen funktionieren nur mit WP 2.7!
Wie man WP Themes auch für WP Versionen VOR WP 2.7 nutzbar macht uvm. bringe ich in anderen Artikeln – sonst wirds zu lang und unübersichtlich.
Ändert sich noch was bis zur Veröffentlichung erneuere ich diesen Artikel, daher empfehle ich per RSS Feed zu abonnieren, dann bleibst Du einfach am Ball der Neuigkeiten
Header.php für Kommentare vorbereiten
Öffne die header.php Deines Themes und tippe oberhalb von wp_head() :
<?php if ( is_singular() ) wp_enqueue_script( 'comment-reply' );?>
comments.php an das WP 2.7 anpassen
Ganz oben in der comments.php muß man alles bis zu *ab hier kannst Du editieren* austauschen – dies solltest Du auch machen, wenn Du die threaded Kommentare nicht haben magst.
Der neue Code lautet:
<?php /** */ // Do not delete these lines if (!empty($_SERVER['SCRIPT_FILENAME']) && 'comments.php' == basename($_SERVER['SCRIPT_FILENAME'])) die ('Please do not load this page directly. Thanks!'); if ( post_password_required() ) { ?> <p class="nocomments"> <?php _e('Sorry, you must be logged in to post a comment.','mtsjourney'); ?></p> <?php return; } ?> <!-- You can start editing here.-->
Unschwer zu erkennen, dies ist aus meinem Theme Journey,
post_password_required ist neu und erzeugt in WP Versionen vor WP 2.7 Fehler!
Der Kommentar Loop wurde ganz neu in WP 2.7
Folgendes
<!-- You can start editing here.--> <?php if ($comments) : ?>
mußt Du mit untenstehenden Code ersetzen.
<!-- You can start editing here.--> <?php if ( have_comments() ) : ?>
Anzeige eines Kommentars ist ohne programmieren nur mehr per CSS änderbar:
Folgendes erzeugt die Kommentare.
<ol class="commentlist"> <?php wp_list_comments(); ?> </ol>
D.h. all die anderen divs etc, die eventuell bis dato in Deinem Theme waren sind so nicht mehr nutzbar! Änderungen im CSS und Hilfen dazu bringe ich auch – doch nicht gleich alles auf einmal
Weiterblättern bei den Kommentaren
Die Angaben für das HTML und CSS kannst Du hier nach Deinem Gusto ändern.
Ebenso, ob Du dies oberhalb der Kommentare oder unterhalb oder 2mal anzeigen magst.
<div class="navigation"> <div class="alignleft"><?php previous_comments_link() ?></div> <div class="alignright"><?php next_comments_link() ?></div> </div>
Abfragen, ob Kommentare da oder nein blieben gleich
<?php else : // wenn es noch keine Kommentare gibt ?> <?php if ('open' == $post->comment_status) : ?> <!-- Kommentare erlaubt aber es ist noch keiner da. --> <p>dein Text</p> <?php else : // comments are closed ?> <!-- wenn die Kommentare geschlossen sind. --> <p>dein Text</p> <?php endif; ?><!--ende der kommentar ja nein abfrage--> <?php endif; ?><!--ende der abfrage gibt es kommentare-->
Textarea kontrollieren
Die Textarea sollte unbedingt die id comment haben.
Dort wo Du stehen hast: Schreibe mir, oder “Lass einen Kommentar da” gehört noch
<div id="cancel-comment-reply"> < ?php cancel_comment_reply_link() ?> </div>
Damit kann man so man doch nicht kommentieren mag, dies wieder rückgängig machen.
Meist hat ein Theme irgendwo einen Anker mit für “respond”.
<a name="respond" id="respond"></a>
Gibt es diesen Anker, dann löschen, denn:
WP 2.7 Kommentarform muß zwischen div id respond sein, sonst funktioniert das Kommentieren einfach nicht.
<?php if ('open' == $post->comment_status) : ?> <div id="respond">
Dieses div schließt Du hier:
</form> </div><!--id respond end--> <?php endif; // If registration required and not logged in ?>
Threaded Kommentare brauchen eine Möglichkeit der Zuordnung
Damit WP weiß wo es welchen Kommentar anzeigen muß braucht es eine Zuordnungshilfe. Bis dato war ja klar: Untereinander
Nun muß WP wissen: Ah der Kommentar von Milli Musterfrau gehört zum Kommentar von H.Mustermann
Damit dies geschieht, mußt Du beim “Kommentar senden”- Button was ändern:
Das da:
<input name="submit" type="submit" id="submit" tabindex="6" value="<?php _e('Submit','mtsjourney');?>" /> <input type="hidden" id="none" name="comment_post_ID" value="<?php echo $id; ?>" />
wird zu:
<input name="submit" type="submit" id="submit" tabindex="6" value="<?php _e('Submit','mtsjourney');?>" /> <?php comment_id_fields(); ?>
Geplante Artikel für die nächsten Tage hier auf Texto.de
Wie trennt man Kommentare von den Pings und Trackbacks in WP 2.7.- Wie ändert man die Ausgabe der Kommentare in WP 2.7.
- Welche CSS Mittel habe ich zum Gestalten von Kommentaren in WP 2.7..
- Wie macht man ein WP Theme sowohl für WP 2.7 wie für vorherige WP Versionen nutzbar.
- Wie zählt man Kommentare und Trackbacks /Pings getrennt in WP 2.7.
Edit: Wie trennt man Pings und Kommentare gibt es fantastisch einfach erklärt bei Jeriko .

Drei Sachen fehlen noch, zum einen muss das JavaScript noch eingebunden werden: In der header.php vor wp_head();
..code..<?php if(is_singular()) wp_enqueue_script(‘comment-reply’); ?>.. /code..
einfügen. Das Kommentarfeld muss die ID “comment” haben und es fehlt noch der Aufruf der Funktion cancel_comment_reply_link().
Jeriko09.11.08 01:30 | # |
oh das ergänze ich oben, habe es bloß nicht getippt,
all diese Sachen sind in meiner Testinstallation – wo ich nicht als Gast kommentieren kann- da , weil ich da das neue default theme verwende.
Bei WP 2.7 Beta 1 ging alles seit WP 2.7 Beta 2 geht es nicht.
Probleme gibt es, wenn die Kommentare auf eine neue Seite umbrechen. Da kann der Admin kommentieren , aber kein Gast mehr.
lg
texto09.11.08 04:25 | # |
Sehr schöner Artikel. Danke dafür!
Torsten11.12.08 21:38 | # |
die anpassung war dank dieses artikels kein problem
allerdiedings ist mir dabei aufgefallen, dass bei den verschachtelten kommentaren mein login-name als klasse ins listenelement geschrieben wird:
class=”comment byuser comment-author-******
den möchte ich der öffentlichkeit natürlich nicht preisgeben. aus diesem grund habe ich in der comment-template.php die neun zeilen unter
// If the comment author has an id (registered), then print the log in name
gelöscht.
jetzt müssen meine leser die verschachtelten kommentare nur noch begreifen und hoffentlich auch nutzen …
frau-doktor16.12.08 17:44 | # |
Ich hab’ kein „*ab hier kannst Du editieren*“ in meiner comments.php … und nun?
Dirk01.01.09 01:54 | # |
hi Dirk
oben steht ein Code unter dem *ab hier kannst du kommentieren* dann suche den
lg
texto02.01.09 17:51 | # |
Hallo,
Ich habe meine header.php und die comments.php entsprechend angepasst.
Plötzlich wird aber meine Sidebar in der Einzelansicht unterhalb des Beitrags angezeigt, wenn man sich nicht eingeloggt hat… Eingeloggt ist sie da, wo sie sein soll, nämlich rechts.
Habe den Fehler noch nicht finden können. Gibt’s einen Tip?
Florian04.03.09 09:57 | # |
in der comments.php
gibts wo eine Zeile
if user logged in
dort wird vermutlich was aufgemacht (div) oder (p)
was nicht zugemacht wurde, oder so..
oder an der falschen Stelle auf oder zugemacht wurde
hilft das bei der Suche?
texto04.03.09 11:10 | # |
Wollte nur kurz Danke sagen. Dein Artikel hat mir bei der Fehlersuche in meinem Theme sehr geholfen.
Thomas04.03.09 17:12 | # |
Super Danke.
Tatsächlich wird irgendwo (vermutlich in der header.php) ein div geöffnet und über den Import der comments.php in die single.php mitgeschleift.
Jedenfalls funktioniert jetzt alles wunderbar!!!
Florian05.03.09 12:06 | # |
Danke für die tolle Anleitung – haben die Änderung im Theme “Fussball” vorgenommen. Würde auch soweit klappen, aber es werden die Kommentare die zuvor unter der “alten” comments.php erstellt wurden nicht mehr angezeigt. Was können wir hier tun?
LG Pedro
Pedro23.12.09 11:16 | # |