Sidebar
ein-/ausblenden

WordPress Track- und Pingbacks seperat listen, ohne Plugin

Plugin für WordPress SEO

Anzeige

Will man die Track- und Pingbacks im Kommentarbereich extra darstellen so kann man mit dem Plugin Trackbacklist arbeiten und dabei hilft einem die Anleitung von Peruns Weblog.
Man kann aber auch das Theme bearbeiten und dabei die Template-Datei comments.php anpassen, in dem man mit WordPress-Template-Tags arbeitet.

Im folgenden ein kleines Beispiel, wie man die Trackbacks und Pingbacks zu einem Beitrag seperat auflisten kann. Da sind der Phantasie und Abfragemechanismen keine Grenzen gesetzt. Ansehen kann man das Ganze auf dieser aktuellen Website zum Beispiel unter diesem Link. Die Track- und Pingbacks befinden sich innerhalb der Kommentare, sehen aber anders aus und enthalten keinen Text. Aus der Liste wollte ich sie nicht entfernen, da dann die Kommentare mt Bezug auf eine Kommentarnummer nicht mehr stimmen. Um die Ping- und Trackbacks komplett auszulagern, habe ich am Ende ein Code-Beispiel für eine komplette comments.php hinterlegt.
Noch mehr Tipps und vorallem Diskussion gibt es bei Robert's Artikel „Trackbacks von Kommentaren kennen“ in den Kommentaren.

Übrigens, wer noch ein wenig Nachhilfe bei dem Begriff Trackback benötigt, der findet eine tolle Erklärung bei Michael - Was sind Trackbacks? Erklärung im Sendung-mit-der-Maus-Stil

Zuerst fragen wir ab, ob es Kommentare zu Beitrag gibt:

if ($comments)

Nun bauen wir die foreach-Schleife aus, in dem wir eine weitere Abfrage einbauen:

if ((get_comment_type() == "trackback") || (get_comment_type() == "pingback"))

Der Tag get_comment_type übergibt uns, um was für einen Kommentar es sich handelt, und in dem Fall lassen wir alle Kommentare zu, die per Trackback oder Pingback kommen. Im Ganzen sieht der Code dann folgendermaßen aus.


<?php if ($comments) : ?>
    <?php foreach ($comments as $comment) : if ((get_comment_type() == "trackback") || (get_comment_type() == "pingback")) : ?>
  1. <?php comment_type('Kommentar', 'Trackback', 'Pingback'); ?> von <?php comment_author_link() ?> <?php comment_text() ?>
  2. <?php endif; endforeach; /* end for each comment */ ?>
<?php endif; ?>

Damit nun der Kommentarbereich auch wirklich nur Kommentare aus dem Textfeld übernimmt, müssen wir die Abfrage dort noch erweitern, denn noch werden ja alle Kommentare, ob Track- oder Pingback dort dargestellt. Dazu erweitert man die Schleife.
Suche nach:

<?php foreach ($comments as $comment) : ?>

und ersetze mit:

<?php foreach ($comments as $comment) : if (get_comment_type() == "comment") : ?>

Außerdem müssen wir beim Schließen der foreach-Schleife die Abfrage beenden:
Suche nach:

<?php endforeach; ?>

und ersetze mit:

<?php endif; endforeach; ?>

Die Darstellung der Kommentaranzahl wird üblicherweise mit dem Tag comments_number() erstellt, die aber alle Kommentare zählt, egal ob Track-, Pingback oder Kommentar. Dagegen hilft nur eine weiter Abfrage - WP - Trackbacks und Kommentare getrennt zählen. In diesem Artikel erkläre ich dann diese Funktion näher.

We noch mehr Tipps zum Anpassen des Kommentarbereiches möchte, der findet drei weitere Möglichkeiten im Artikel WP - Kommentarbereich anpassen. Dort erläuter ich kurz, wie man einen Counter einbaut, die Kommentare des Beitragsautors hervorhebt und wie man Gravatare zu den Kommentarautoren darstellt.

Beispiel einer kompletten comments.php mit Track- und Pingback am Ende


<?php
/*********************************************************************
comments-template mit counter, trackback, Hervorhebung des Autors
und Trennung Kommentare zu Track- und Pingback
**********************************************************************/
?>

<div id="comments">
<?php // Do not delete these lines
	if ('comments.php' == basename($_SERVER['SCRIPT_FILENAME']))
		die ('Bitte diese Seite nicht direkt laden. Danke !');

				if (!empty($post->post_password)) { // if there's a password
						if ($_COOKIE['wp-postpass_' . COOKIEHASH] != $post->post_password) {  // and it doesn't match the cookie
				?>

				<p class="nocomments">Dieser Beitrag ist passwortgesch&#252;tzt. Bitte gebe das Passwort an um die Kommentare zu sehen.</p><p>

				<?php
				return;
						}
				}

		/* alternating varibale for comment background */
		$oddcomment = 'alt';
?>

<?php if ($comments) : ?>
	<h2 class="twost"><?php comments_number('0 Kommentare', '1 Kommentar', '% Kommentare' );?> zu &#8222;<?php the_title(); ?>&#8220;</h2>

	<ol class="commentlist">

	<?php $gravatar_default = "ADRESSE_ZUM_DEFAULTBILD"; ?>

	<?php $count = 0; foreach ($comments as $comment) : if (get_comment_type() == "comment") : $count++; ?>

		<li id="comment-<?php comment_ID() ?>"
			<?php global $comment;
				if ( ($comment->comment_author_email == get_the_author_email()) && ($comment->user_id != 0) ) {
						echo " class=\"autor_kommentar\"";
				} else {
						echo " class=\"" . $oddcomment . "\"";
				}
			?>>
			<p class="comment-number"><a href="#comment-<?php comment_ID() ?>"><?php echo $count; ?></a></p>

			<?php $gravatar_url = "http://www.gravatar.com/avatar.php?gravatar_id=" . md5(get_comment_author_email()) . "&amp;default=" . urlencode($gravatar_default) . "&amp;size=30"; ?>
			<img class="gravatar" src="<?php echo $gravatar_url ?/>" title="<?php comment_author(); ?>'s Gravatar" alt="id" />

			<?php comment_type('Kommentar', 'Trackback', 'Pingback'); ?><small> von </small><cite><?php comment_author_link() ?></cite>
			<?php if ($comment->comment_approved == '0') : ?>
			<em>Dein Kommentar muss noch moderiert werden.</em>
			<?php endif; ?>
			<br />
			<small class="commentmetadata"><?php comment_date('j. F Y') ?> um <?php comment_time('H:i') ?> <?php edit_comment_link('&middot; bearbeiten','',''); ?></small>

			<?php comment_text() ?>
		</li>

	<?php /* Changes every other comment to a different class */
		if ('alt' == $oddcomment) $oddcomment = '';
		else $oddcomment = 'alt';
	?>

	<?php endif; endforeach; /* end for each comment */ ?>
	</ol>

 <?php else : // this is displayed if there are no comments so far ?>

	<?php if ('open' == $post->comment_status) : ?>
		<!-- If comments are open, but there are no comments. -->

	 <?php else : // comments are closed ?>

		</p><p class="nocomments">Kommentare sind gechlossen.</p>

	<?php endif; ?>
<?php endif; ?>

<?php if ('open' == $post->comment_status) : ?>

<h2 class="threest" id="writecomment">Kommentar schreiben</h2>

<?php if ( get_option('comment_registration') && !$user_ID ) : ?>
<p>Du musst <a href="<?php echo get_option('siteurl'); ?>/wp-login.php?redirect_to=<?php the_permalink(); ?>">angemeldet</a> sein um einen Kommentar zu schreiben.</p>
<?php else : ?>

	<form action="<?php echo get_option('siteurl'); ?>/wp-comments-post.php" method="post" id="commentform">

		<?php if ( $user_ID ) : ?>
			<p>Angemeldet als <a href="<?php echo get_option('siteurl'); ?>/wp-admin/profile.php"><?php echo $user_identity; ?></a>. <a href="<?php echo get_option('siteurl'); ?>/wp-login.php?action=logout" title="Log out of this account">Abmelden &raquo;</a></p>
		<?php else : ?>

			<p>
				<input type="text" name="author" id="author" value="<?php echo $comment_author; ?/>" size="20" tabindex="1" />
				<label for="author">Name <?php if ($req) echo "<small>Pflichtfeld"; ?></label>
			</p>
			<p>
				<input type="text" name="email" id="email" value="<?php echo $comment_author_email; ?/>" size="20" tabindex="2" />
				<label for="email">eMail (bleibt versteckt) <?php if ($req) echo "<small>Pflichtfeld"; ?></label>
			</p>
			<p>
				<input type="text" name="url" id="url" value="<?php echo $comment_author_url; ?/>" size="20" tabindex="3" />
				<label for="url">Website</label>
			</p>
			<?php if ( function_exists('math_comment_spam_protection') ) { $mcsp_info = math_comment_spam_protection();?>
			<p>
				<input type="text" name="mcspvalue" id="mcspvalue" value="" size="20" tabindex="4" />
				<label for="mcspvalue">Spamschutz: <?php echo $mcsp_info['operand1'] . ' + ' . $mcsp_info['operand2'] . ' = ?' ?> <small>Pflichtfeld</small></label>
				<input type="hidden" name="mcspinfo" value="<?php echo $mcsp_info['result']; ?/>" />
			</p>
			<?php } ?>

		<?php endif; ?>
			<p class="textfeld" >Textfeld &raquo; <a href="javascript:change_textbox_size(-80);" title="Textfeld verkleinern" >kleiner</a> &middot; <a href="javascript:change_textbox_size(80);" title="Textfeld vergr&ouml;&szlig;ern" >gr&ouml;&szlig;er</a></p>
			<p>
				<textarea name="comment" id="comment" cols="30" rows="5" tabindex="4"></textarea>
			</p>
			<p>
				<input name="submit" type="submit" id="submit" tabindex="6" value="Kommentar absenden" />
				<input type="hidden" name="comment_post_ID" value="<?php echo $id; ?/>" />
			</p>
		<?php do_action('comment_form', $post->ID); ?>
	</form>
	<?php endif; // If registration required and not logged in ?>

<?php endif; // if you delete this the sky will fall on your head ?>

<?php if ($comments) : ?>
	<ol class="trackbacklist">

	<?php foreach ($comments as $comment) : if ((get_comment_type() == "trackback") || (get_comment_type() == "pingback")) : $count++?>

		<li id="comment-<?php comment_ID() ?>" class="<?php echo $oddcomment; ?>">
			<p class="comment-number"><a href="#comment-<?php comment_ID() ?>"><?php echo $count; ?></a></p>
			<?php comment_type('Kommentar', 'Trackback', 'Pingback'); ?><small> von </small><cite><?php comment_author_link() ?></cite>
			<br />
			<small class="commentmetadata"><?php comment_date('j. F Y') ?> um <?php comment_time('H:i') ?> <?php edit_comment_link('&middot; bearbeiten','',''); ?></small>

			<?php //comment_text() ?>
		</li>

	<?php /* Changes every other comment to a different class */
		if ('alt' == $oddcomment) $oddcomment = '';
		else $oddcomment = 'alt';
	?>

	<?php endif; endforeach; /* end for each comment */ ?>
	</ol>
 <?php else : // this is displayed if there are no comments so far ?>

	<?php if ('open' == $post->comment_status) : ?>
		<!-- If comments are open, but there are no comments. -->

	 <?php else : // comments are closed ?>

		<p class="nocomments">Trackpacks/Pingbacks sind gechlossen.</p>

	<?php endif; ?>
<?php endif; ?>

</div>

13 Kommentare und 17 Trackbacks zu „WordPress Track- und Pingbacks seperat listen, ohne Plugin“

  1. 1
    Trackback von tabellenlos.com
  2. 2
    Pingback von Blogschrott - » Trackbacks & Pingbacks von den Kommentaren trennen
  3. 3
    Trackback von BloggingTom
  4. 4
    Pingback von who ever this concerns … » Blog Archiv » Trackbacks von den Kommentaren trennen
  5. 5
    Pingback von WP - Trackbacks und Kommentare getrennt zählen - bueltge.de [by:ltge.de]
  6. 6
    Pingback von Kommentare Pings Trackbacks trennen
  7. 7
    Pingback von WordPress: Interne Pings verbannen – flomiscuous
  8. 8
    Kommentar von Martin Hamann

    I dont unterstand this code :
    "
    zu „“

    "

    "

  9. 9
    Kommentar von Frank Bültge

    @Martin: bitte nochmal mehr Infos, was soll ich mit der Aussage anfangen.

  10. 10
    Kommentar von David

    Hallo Frank,
    Das ist hier super erklärt aber mir bleibt eine Frage offen, da ich leider nicht so ein Ass in PHP und so bin.
    Wo wird der 1. große Abschnitt PHP Code den du hier aufgeführt hast eingebaut.

    Ich könnte auch diene ferige Comments.php verwenden, aber ich selber habe bei mir schon viele Sachen drinne, deshalb würde ich es leiebr versuchen bei mir miteinzubauen.

    Lieben Gruß David

    P.S. Dein Code Tag geht leider nicht.

  11. 11
    Kommentar von Frank Bültge

    Die Prüfung

    <?php if ($comments) : ?> leitet es ein und die sollte es auch in deiner comments.php geben.
    Um Code zu hinterlegen, einfach die Tags bei aktivem JS nutzen oder <code lang="php"> </code>
    LG frank

  12. 12
    Kommentar von David

    Hallo Frank, das hat mir nun schon sher weitergeholfen.

    Nun ist es auch soweit richtig und es klappt fast alles, bis auf das noch kleine Fragezeichen angezeigt werden, siehe hier -> http://www.blogalltag.de/2007/05/04/das-grosse-dsds-finale/

    Aber selbst wenn man die nicht weg bekommt, wäre das nicht so schlimm.

    LG David

  13. 13
    Kommentar von Frank Bültge

    Habe mir deinen Link soeben angesehen, aber ich kann keine Fragezeichen erkennen? Ansonsten sieht es doch gut aus - ic hwürde max. noch ein margin um die Gravatare setzen, so dass sie nicht so eng am Text kleben.

  14. 14
    Kommentar von David

    Hallo Frank, aiuch das sollte nun behoeb sein. Dankschön.

    Das mit den Fragzeichen liegt an meiner Kodierung. Ich habe UTF-8.
    Darf ich fragen was du hast ? Denn wenn sie bei dir nicht angezeigt werden... ist ja schon ein weing merkwürdig.

    LG David

  15. 15
    Kommentar von Frank Bültge

    Deine Seite ist UTF-8 und so zeigt sie auch mein Browser Firefox, alles richtig.

  16. 16
    Pingback von Marco Luthe Online! » Blog Archive » Wordpress Plugin “TrackbackList”
  17. 17
    Kommentar von michael

    Hallo Frank!
    Wirklich schöne Anleitung. Habe meine Comments.php direkt umgebaut und siehe da alles funktioniert. Das ist bei mir nicht immer so. ;-)
    Viele Grüße
    Michael

  18. 18
    Pingback von Eigenes Wordpress Theme fertig » Blogwiese
  19. 19
    Trackback von datenschmutz.net
  20. 20
    Pingback von Kommentardarstellung - Trackbacks/Pingbacks von Kommentaren getrennt | Blog von Kim (Mupfel) Huebel
  21. 21
    Pingback von Anpassung bei den Kommentaren! » Von Jens » Jens Hellmeier - Blog | Web & IT - News
  22. 22
    Kommentar von Antje

    Der Link zum Plugin funktioniert nicht mehr - ich hab ihn dann doch noch gefunden:
    http://86confessional.com/articles/200703/trackbacklist-plugin-v13

    Danke für deine Anleitung :)

  23. 23
    Pingback von links for 2008-04-07 | unblogged|Artikelverzeichnis
  24. 24
    Pingback von Aufräumaktion im Template | Lionstarrs Linux Blog
  25. 25
    Pingback von Pingbacks, Trackbacks und Kommentare | Onkel Andys Tagebuch
  26. 26
    Kommentar von Drusi

    Das Trackbacklist-Plugin wird wohl nicht mehr weiterentwickelt, zumindest ist die Site down. Gibt es noch ein ähnliches Plugin?

  27. 27
    Kommentar von Frank Bültge

    @Drusi: mir ist nichts bekannt, weil das auch ohne Plugin geht.

  28. 28
    Pingback von Trackbacks ab ins Eckchen — Ratatatam
  29. 29
    Pingback von Trackbacks von Kommentaren trennen | Requiem Katharsis
  30. 30
    Kommentar von Mario

    Sieht irgendwie sehr kompliziert aus. Geht das auch einfacher?

Kommentar schreiben

Kommentarregeln: Bleib cool, kritisch ist in Ordnung, aber wenn du unhöflich bist, dann lösche ich deinen Kommentar. Bitte benutze deinen persönlichen Namen oder Initialen und nicht den Namen eines Unternehmens, dies würde als Spam gewertet und wird gelöscht. Der Zusammenhang zwischen Namen und URL sollte nicht offensichtlich auf Spam hindeuten! ♥ Ansonsten, vielen Dank für den Kommentar und viel Spaß mit meinem Blog.

Kommentar-Hilfe

händischer Spam:
Beachte die Kommentarregeln, jede Form von versuchtem Spam wird gelöscht. Warum und wieso steht in einem meiner Beiträge.

Bezug auf Textstellen:
Du kannst direkt bezug auf Textstellen im Beitrag nehmen. Dazu muss lediglich der Bereich im Artikel markiert werden; daraufhin erscheint ein Button, der den markierten Text in das Kommentarfeld übernimmt und als Zitat auszeichnet. Die Funktion ist nur bei aktivem JavaScript nutzbar.

xHTML:
Du kannst folgende Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <blockquote cite=""> <code> <pre> <em> <strong> <strike> <ul> <ul> <li>

Achte darauf, wenn du Code im Kommentar hinterlegen willst, dann muss der Code maskiert sein. Dann wird er nicht interpretiert. Der Code muss mit Hilfe von HTML-Entities dargestellt werden, d.h. dass man z.B. < als &lt; und > als &gt; einfügt.

E-Mail-Benachrichtigung bei neuen Kommentaren ?
Wenn der Haken in der Checkbox gesetzt ist, dann wirst du über neue Kommentare vie E-Mail informiert. Der Versand erfolgt nur, wenn du die URL in der Bestätigungs-E-Mail genutzt hast oder schon Abonnent hier im Blog bist.

Kommentar erscheint nicht:
Alle Kommentare werden manuell geprüft, freigegeben und nach Möglichkeit beantwortet. Bitte um etwas Geduld und Nachsicht.

Identifikationsbilder (Avatare):
Auf Gravatar.com kann man sich mit seiner E-Mail-Adresse registrieren und ein Bild hochladen, dann erscheint dieses Gravatar hier und in vielen weiteren Blogs.

Spamschutz:
Das Kommentarformular ist mit einem Spamschutz ausgerüstet. Solltest du diesen Artikel ohne JavaScript besuchen und kommentieren wollen, so muss du die Frage beantworten und das jeweilige Wort in das Textfeld eingeben.