Kommentare 15

WordPress-Tipp: Kommentare von Pingbacks und Trackbacks trennen

Da ich bereits des öfteren gefragt wurde, wie man Kommentare eines WordPress-Artikels von Pingbacks und Trackbacks trennen kann, habe ich hier eine kleine Anleitung vorbereitet. Für diese Anpassung in einem WordPress-Theme muss die comments.php Datei bearbeitet werden.

Am besten du speicherst dir als erstes eine Kopie deiner comments.php ab. So kannst du immer wieder auf die originale Datei zurückgreifen, falls du mit dem Code durcheinander kommen solltest.

Dann kannst du mit den Änderungen in der Datei beginnen. Suche nach folgendem Code in deiner comments.php Datei (ich werde in der Anleitung die comments.php Datei des Twenty Eleven-Themes anpassen):

<h2 id="comments-title">
<?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>' );
?>
</h2>

Der Code-Schnipsel ruft die Kommentar-Überschrift inklusive der Anzahl aller Kommentare aus. Um in diesem Code nur die Kommentar-Anzahl, ohne die Pingbacks und Tracksbacks anzuzeigen, änderst du den Code jetzt in:

<?php if (!empty($comments_by_type['comment'])) { ?>
<h2 id="comments-title">
	<?php echo count($wp_query->comments_by_type['comment']); ?> <?php _e( 'Comments', 'twentyeleven' ); ?>
</h2>

Der Code bewirkt, dass du nur die Kommentare vom type “comment” aufrufst. Die Kommentar-types “pingback” und “trackback” schließt du erst einmal aus.

Als nächstes suchst nach dem Code für die Kommentarliste (ol mit der Klasse “commentlist”) in der comments.php Datei:

<ol class="commentlist">
	<?php
		/* Loop through and list the comments. Tell wp_list_comments()
		 * to use twentyeleven_comment() to format the comments.
		 * If you want to overload this in a child theme then you can
		 * define twentyeleven_comment() and that will be used instead.
		 * See twentyeleven_comment() in twentyeleven/functions.php for more.
		 */
		wp_list_comments( array( 'callback' => 'twentyeleven_comment' ) );
	?>
</ol>

Diesen Code änderst du in:

<ol class="commentlist">
<?php
	wp_list_comments( array( 'callback' => 'twentyeleven_comment', 'type' => 'comment' ) );
?>
</ol>

Indem du die zusätzliche Angabe “type gleich comment” festlegst, werden die Trackbacks und Pingbacks aus der Auflistung der Kommentare erst einmal ausgeschlossen.

Für die Pingbacks und Trackbacks erstellst du jetzt eine zweite, eigene Auflistung unterhalb der esten Kommentarliste. Dafür fügst du direkt unter der ersten ol-Kommentarliste folgenden Code ein:

<?php } if (!empty($comments_by_type['pings'])) { ?>

<h2 id="comments-title"><?php echo count($wp_query->comments_by_type['pings']); ?> <?php _e( 'Pingbacks & Trackbacks', 'twentyeleven' ); ?></h2>

	<ol class="commentlist">
		wp_list_comments( array( 'callback' => 'twentyeleven_comment', 'type' => 'pings' ) );
	</ol>
<?php } ?>

Der type “pings” ruft übrigens Pingbacks und Trackbacks zusammen auf. Möchtest du nur Pingbacks anzeigen, kannst du “pings” in “pingback” ändern. Für die Anzeige von Trackbacks kannst du “trackback” nutzen.

(Eine genaue Beschreibung der wp_list_comments types findest du auch im WordPress Codex.)

Wenn du jetzt dein Theme im Browser neu lädst, sollten Kommentare getrennt von Pingbacks und Trackbacks angezeigt werden.

WordPress Pingbacks und Kommentare trennen

Getrennte Kommentare und Pingbacks im Twenty Eleven-Theme.

Anpassung der Kommentar- oder Pingback-Darstellung im Theme

Möchtest du die Anzeige der Kommentare oder der Pingbacks noch anpassen, kannst du in der functions.php übrigens auch noch die twentyeleven_comment Funktion bearbeiten. Hier findest du das li-Listelement mit der Klasse “post pingback”. Du kannst den Code oder den Textstring “Pingback:” noch nach deinen Wünschen verändern.

Ich hoffe diese kleine Anleitung hilft dir, den Kommentarbereich deines WordPress-Themes anzupassen. Am besten ist es, wenn du für deine Anpassungen ein Child-Theme verwendest. So können deine Änderungen auch bei einem Updates des Parent-Themes nicht verloren gehen.

Hast du Fragen zum Code oder weitere Tipps für die optimierte Anzeige von Kommentaren und Pingbacks in WordPress? Über dein Feedback freue ich mich sehr!

15 Kommentare

    • Hallo Dominik,

      ich versuche mal eine Erklärung: Pingbacks und Trackbacks sind Hinweise, die automatisch von einem Blog A zu einem anderen Blog B gesendet werden, wenn ein Artikel aus Blog B mit einem Link in Blog A erwähnt wird. Diese Verweise können dann im Kommentarbereich des entsprechenden Artikels auf Blog B aufgelistet werden. Durch die Anzeige der Pings können die Leser eines Artikels also erfahren, wenn andere Blogger diesen Artikel auf ihren Blogs erwähnt haben und es kann eine hilfreiche Verknüpfung von Blog-Artikeln zu einem bestimmten Thema entstehen.

      Zwischen Pingbacks und Trackbacks gibt es zwar ein paar kleinere Unterschiede (eine Erklärung darüber findest du z.B. hier im WordPress Codex), in den meisten WordPress-Themes werden sie aber als ein Element dargestellt.

      Ich hoffe meine Antwort hilft etwas als Erklärung.

      Viele Grüße,
      Ellen

    • Ich hab das Problem das ich das mit meinen Theme-Code nicht hinkriege! Einerseits hab ich nur eine ähnliche Datei (<?php comment_form_title statt title, welche ich nicht finde. Und die Ol-Class Comment-List hab ich nur eine Ol-Id..

      Ich wollte dir mal den Code bei Facebook schicken, aber dafür muss ich mit dir befreundet sein..

      Ich würde mich sehr freuen wenn du eine Lösung hast

      Grüße
      Vincent

      P.S: Ich hab noch eine zweite Datei Namen "comments-popup".. vlt. muss ich die verwenden? Wobei ich dort auch nicht richtige Ergebnisse gefunden habe!

  1. Nun wollte ich mich daran geben dies im Yoko zu realisieren. Der Code im Yoko ist jedoch völlig anders als im Twenty Eleven. Kannst du den Code wie er im Yoko aussehen müsste bitte posten?
    Das wäre sehr nett!

  2. Pingback: Kommentare von Pingbacks in WordPress trennen » SigisWorld

  3. Pingback: dofollow nur für WordPress Trackbacks und Pingbacks ohne Plugin

  4. Pingback: Was ist die Blogosphäre? – Der Weg zum Social-Media-Blog – Zwischen Mediendemokratie und Social-Media-Kultur

  5. Pingback: Blog Ping-Services - Tobias Scheible

  6. Hi Ellen, danke für den Bericht und die Inspiration, Kommentare von Pingbacks und Trackbacks zu trennen. Leider funktioniert es nicht mehr so wie oben beschrieben, aber Google konnte weiterhelfen. Seit WordPress 3.1 wurde wohl die get_comments() Funktion überarbeitet. Folgender Code hilft bei der Aufteilung der Kommentare, wobei es bestimmt auch besser geht:

    $post_comments = get_comments(array(‘type’ => ‘comment’,’post_id’ => $post->ID));
    $post_trackbacks = get_comments(array(‘type’ => ‘trackback’,’post_id’ => $post->ID));
    $post_pingbacks = get_comments(array(‘type’ => ‘pingback’,’post_id’ => $post->ID));
    echo count($post_comments) . ” Comments”;
    echo count($post_trackbacks) . ” Trackbacks”;
    echo count($post_pingbacks) . ” Pingbacks”;

    Quelle:
    http://wordpress.org/support/topic/displaying-comment-and-ping-counts-separately

Schreibe eine Antwort