Kommentatoren-URLs ohne nofollow

Hinweis: Dieser Artikel ist älter als zwei Jahre (letzte Änderung: 30. April 2012) und evtl. nicht mehr aktuell.

Viele Spammer versuchen durch häufiges verlinken ihrer Websites, z. B. in Kommentatoren-URLs, ihren PageRank zu erhöhen. Daher setzt WordPress die URLs von Kommentatoren von Haus aus über das Template-Tag comment_author_link() auf nofollow. nofollow weißt die Suchmaschinen an, diese Links nicht zur Berechnung der Popularität heranzuziehen.

Wer als Webseitenbetreiber allerdings Kommentatoren hat bei denen er sicher ist, dass es sich nicht um Spamlinks handelt, der kann die URLs wieder auf follow setzen bzw. das nofollow entfernen.

Wir haben mal genau dies für unsere Top10-Kommentatoren auf unserer Startseite realisiert, so werden sie 1. auf der Startseite erwähnt und 2. erhalten sie von dort aus einen suchmaschinenfreundlichen Backlink.

<?php  
/* Zeige Top Kommentatoren */
$count=10;
$exclude='admin,user_xy';

$comments=$wpdb->get_results("SELECT comment_author_url, comment_author, COUNT(*) cnt 
  FROM   $wpdb->comments 
  WHERE  comment_approved = '1' 
  AND    comment_type NOT IN ('pingback','trackback')
  GROUP BY comment_author_url, comment_author
  ORDER BY 3 DESC");
  
$excludes=explode(',', $exclude); 
?>

<!-- ab hier der Ausgabeteil -->
<h2 class="moreposts">Top10-Kommentatoren</h2>        
<ul id="top_commenter">        
<?php
foreach($comments as $comment) {
  if (!in_array($comment->comment_author, $excludes)) { ?>

  <li>
    <?php if ($comment->comment_author_url != "" && $comment->comment_author_url != "http://") { ?>
      <a href="<?php comment_author_url(); ?>"><?php comment_author(); ?></a>
    <?php } else { ?>
      <?php comment_author(); ?>
    <?php } ?>
    
    (<?php echo $comment->cnt; ?>)
  </li>

  <?php if (++$ccount == $count) break;
  }
}
?>         
</ul>

Kleine Erklärung:

$count (Zeile 3) setzt die Anzahl der Kommentatoren, die angezeigt werden sollen.
Mit $exclude (Zeile 4) können Kommentatoren zum Ausschluss angegeben werden, z. B. die Kommentare des Admins oder Artikelautors.
Dann kommt die Datenbankabfrage ( Zeile 6-11 ) wo wir in allen veröffentlichten ( Zeile 8 ) Kommentaren ( Zeile 9 ) nach den Top-Kommentatoren und dessen Links ( Zeile 6 ) suchen. Das ganze gruppieren ( Zeile 10 ) wir nach Kommentatoren-URL und sortieren es nach Höchstzahl ( Zeile 11 ).

Jetzt kommt der eigentliche Ausgabeteil. Überschrift und UL sollten klar sein.
Dann die array-Schleife ( Zeile 20-35 ) wo erst mal durch das §excludes die o. g. Kommentatoren ausgeschlossen werden ( Zeile 21 ).
Danach der Teil im Listenelement. Und genau hier kommt jetzt nicht nur einfach comment_author_link() zum Zuge,
denn dann wäre wieder ein nofollow drin, sondern eine IF-Abfrage. Diese fragt die comment_author_url nach Inhalten ab ( Zeile 24 ). Falls eine URL hinterlegt ist, dann wird diese ohne rel=nofollow ausgegeben ( Zeile 24-26 ), ansonsten nur der Kommentatorenname ( Zeile 26-28 ).
Wer will kann dem a-Tag noch ein follow mitgeben:

<a href="<?php comment_author_url(); ?>" rel="follow"><?php comment_author(); ?></a>

Mit $comment->cnt ( Zeile 30 ) wird dann noch der Zähler ausgegeben.

Fertig!

Das ganze lässt sich dann noch ein bisschen über die style.css stylen:

ul#top_commentors{list-style:none;padding:0;}
ul#top_commentors li{float:left;padding:0 10px;border-right:1px dashed #ccc;}
Empfehle uns: email facebook google plus twitter

Artikel Informationen

  • Erstellt am Freitag, 17. Juni 2011 um 12:10 (Letzte Änderungen 30. April 2012, 10:39) 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.

Hinterlasse einen Kommentar

  Abonnieren  
Benachrichtige mich zu: