DISCLAIMER: this post is older than one year and may not be up to date with latest WordPress version.

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)

3 Comments

  1. Nikita Mishra

    wow! I never thought that it is possible to do.
    Thanks for this trick!

  2. Sweet! 😀 Next step is to have it list these nested.
    Thanks for posting this, and also to Kyle Eslick for publishing his hack.

  3. Could you explain me if it’s possible to show the avatar picture with your hack ? Thanks

Leave a Comment

Your email address will not be published. Required fields are marked *