0

How would I make this Function display only the latest 5 comments?

function showLatestComments() {
  global $wpdb;  
  $sql = "
   SELECT DISTINCT comment_post_ID, comment_author, comment_date_gmt, comment_approved, SUBSTRING(comment_content,1,100) AS com_excerpt 
   FROM $wpdb->comments 
   WHERE comment_approved = '1'
   ORDER BY comment_date_gmt DESC 
   LIMIT 5";  
 $comments = $wpdb->get_results($sql);  
 $output .= '<h2>Latest student perspectives <img src="/wp-content/themes/blue-and-grey/images/hmepage-tri.png" class="class3" /></h2>
 <ul id="comm">';  
 foreach ($comments as $comment) { 
   $output .= '<li><strong>'. $comment->comment_author . ' said</strong> : "' . strip_tags($comment->com_excerpt). '..."</li>';
   }
 $output .= '</ul>';  
 echo $output;  
}//end function

1 Answer 1

0

the function you posted is limited to 5 comments which means it should work, but anyway there is no need for a custom SQL query when you can use the native get_comments function

function showLatestComments() {
    $comments = get_comments(array(
        'status' => 'approve',
        'number' => '5'
        )
    );
    $output .= '<h2>Latest student perspectives <img src="/wp-content/themes/blue-and-grey/images/hmepage-tri.png" class="class3" /></h2>
    <ul id="comm">';  
    foreach ($comments as $comment) { 
        $output .= '<li><strong>'. $comment->comment_author . ' said</strong> : "' . substr(strip_tags($comment->content),0,99). '..."</li>';
    }
    $output .= '</ul>';  
    echo $output;  
}//end function

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.