How to: List most recent comments

April 8, 2009 at 9:19 am

There’s plugins and widgets that allows you to list recent comments on your WordPress blog. But you know it, I like to avoid using many plugins and enjoy understand how things works. Here’s a nice code to display recent comments on your blog.

To use this hack, simply paste this code anywhere on your theme files.

<?php
  global $wpdb;
  $sql = "SELECT DISTINCT ID, post_title, post_password, comment_ID, comment_post_ID, comment_author, comment_date_gmt, comment_approved, comment_type,comment_author_url, SUBSTRING(comment_content,1,30) AS com_excerpt FROM $wpdb->comments LEFT OUTER JOIN $wpdb->posts ON ($wpdb->comments.comment_post_ID = $wpdb->posts.ID) WHERE comment_approved = '1' AND comment_type = '' AND post_password = '' ORDER BY comment_date_gmt DESC LIMIT 10";

  $comments = $wpdb->get_results($sql);
  $output = $pre_HTML;
  $output .= "\n<ul>";
  foreach ($comments as $comment) {
    $output .= "\n<li>".strip_tags($comment->comment_author) .":" . "<a href=\"" . get_permalink($comment->ID)."#comment-" . $comment->comment_ID . "\" title=\"on ".$comment->post_title . "\">" . strip_tags($comment->com_excerpt)."</a></li>";
  }
  $output .= "\n</ul>";
  $output .= $post_HTML;
  echo $output;
?>

This code will list the 10 most recent comments. If you want to list more or less comments, simply change the “10” in the $sql variable.

Credits goes to Kyle Eslick for this awesome recipe!

By the way, have you checked out Nomeblog, a free WordPress theme created by Alex Denning (Author on my other blog Cats Who Code)