Bislang verwende ich hier noch die alte Methode der Kommentar-Funktion. Jetzt wollte ich gerne mal die aktuelle (seit v2.7.) in einem Blog einsetzen.
Hier eine Anleitung zur Umstellung – keine leichte Aufgabe, soviel sei schon gesagt.
In den Beiträgen (evtl. auch Seiten) wurde das Kommentar-Template aufgerufen <?php comments_template(); ?>
In dem Template comments.php
werden dann folgende Bereiche verarbeitet:
- Anzeige der Kommentar-Anzahl
<?php comments_number(...);?>
- Auflistung der Kommentare
mit Angaben zu Author, Avatar, Datum, Text
Beispiel CodeSpoiler<ol class="commentlist">
<?php foreach ($comments as $comment) : ?>
<li <?php comment_class(); ?> id="comment-<?php comment_ID() ?>">
<?php echo get_avatar( $comment, 32 ); ?>
<?php comment_text() ?>
<p><cite><?php comment_type(_x('Comment', 'noun'), __('Trackback'), __('Pingback')); ?> <?php _e('by'); ?> <?php comment_author_link() ?> — <?php comment_date() ?> @ <a href="#comment-<?php comment_ID() ?>"><?php comment_time() ?></a></cite> <?php edit_comment_link(__("Edit This"), ' |'); ?></p>
</li>
<?php endforeach; ?>
</ol>[Einklappen] - Regelungen was passiert wenn Kommentare geschlossen sind; User eingeloggt ist usw.
- Der Kommentar Eingabe-Bereich
<form action="<?php echo... id="commentform">
Der wesentliche Unterschied ist, dass der 2. Punkt – die Auflistung der Kommentare – jetzt nur noch aus einem kurzen Aufruf besteht.
<ol class="commentlist">
<?php wp_list_comments('type=comment&callback=mytheme_comment'); ?>
</ol>
Die bisherigen Angaben zum Author, Datum usw. stehen jetzt in der functions.php
.
Anleitung zur Verwendung der neuen Kommentar-Funktion
zunächst die Basis. später mehr zu den weiteren Möglichkeiten (Trennung von Kommentaren und Trackbacks) – siehe auch [Teil 2].
- Den Aufruf des Kommentar-Templates in der
single.php
(evtl. auchpage.php
) ändern in:
<?php comments_template('', true); ?>
- In der
functions.php
den Code dieser Datei eingeben:- functions Code
Sollte noch keine vorhanden sein, die Datei downloaden und umbennen infunctions.php
Hinweis
SpoilerEine functions.php hat immer folgenden Aufbau
<?php Die 1. Zeile
Der Kommentar Code-Bereich (function mytheme…)
?> Die letzte Zeile. Danach darf keine Leerzeichen stehen.
Beim reinkopieren nur den Bereich dazwischen verwenden.
Mehr Infos über die functions.php im WP-Codex[Einklappen] - functions Code
- In der comments.php den vorhandenen Code für die Auflistung der Kommentare entfernen und gegen den neuen Aufruf austauschen:
<ol class="commentlist">
<?php wp_list_comments('type=comment&callback=mytheme_comment'); ?>
</ol>Dadurch wird geprüft ob in der
functions.php
ein Bereich mytheme_comment vorhanden ist.
Die Kommentare im Blog werden jetzt sicherlich etwas verändert aussehen. Um diese wieder in die alte Form zu kriegen muss der Code in der functions.php
angepasst werden.
Und das kann schon ziemlich schwierig sein, wenn man zuvor die Kommentare aufwändig gestaltet hatte.
Kommentare vs. Trackbacks und Pings
Grundsätzlich lassen sich Kommentare von Trackbacks und Pings durch die Type-Angabe trennen.
Mit dem bisherigen Code in der comments.php werden nur die Kommentare angezeigt.
<?php wp_list_comments('type=comment&callback=mytheme_comment'); ?>
um sich zusätzlich die Trackbacks / Pings anzeigen zu lassen, bedarf es eines weiteren Codes zur Auflistung:
<?php wp_list_comments('type=pings&callback=list_pings'); ?>
Die Angabe type=pings
fasst Trackback und Ping-Einträge zusammen.
Bei Pings wird in der functions.php der Eintrag für list_pings gesucht.
Dieser muss noch dort noch eingeügt werden.
Functions-Code
function list_pings($comment, $args, $depth) {
$GLOBALS['comment'] = $comment;
?>
<li id="comment-<?php comment_ID(); ?>">
<?php comment_author_link(); ?> am <?php printf(__('%1$s'), get_comment_date('D., d.m.y')) ?>
<small><?php comment_text() ?></small>
<?php
}
Im WP-Forum gab es dazu einen interessanten Dialog.
Maxe gibt dort zahlreiche Hinweise.
So wird dort auch erklärt wie man getrennte Zähler einbaut.
Oder bei Frank Bültge nachschauen.
Optimierungen
siehe Teil 2:
Anzeige der Kommentare & Pings/Trackbacks optimieren
Umgesetzt habe ich die neue Kommentar-Funktion in meinem
House-of-Chicago Blog.
Noch kein Kommentar, Füge deine Stimme unten hinzu!