2

I'm using the following code in my function.php to display the top commenters in my theme:

function top_comment_authors($amount = 5){

global $wpdb;

$results = $wpdb->get_results('
    SELECT
        COUNT(comment_author_email) AS comments_count, comment_author_email, comment_author, comment_author_url
    FROM
        '.$wpdb->comments.'
    WHERE
        comment_author_email != "" AND comment_type = "" AND comment_approved = 1
    GROUP BY
        comment_author_email
    ORDER BY
        comments_count DESC, comment_author ASC
    LIMIT '.$amount

);

$output = "<ul>";
foreach($results as $result){
$output .= "<li>".get_avatar($result->comment_author_email, 30).' <p>'.(($result->comment_author_url) ? "<a href='".$result->comment_author_url."'>" : "").$result->comment_author.(($result->comment_author_url) ? "</a>" : "")." (".$result->comments_count.")</p></li>";
}
$output .= "</ul>";

echo $output;

}

It works fine, but I'd like to exclude myself, aka the admin/author. Is this possible at all? If so, how would I do that? In what way would I have to modify the code above?

Thanks a lot in advance! :)

2

Extend the WHERE clause:

WHERE
    comment_author_email != "" 
    AND comment_author_email != "YOUR_MAIL_ADDRESS" 
    AND comment_type = "" 
    AND comment_approved = 1
-1

comment_author_email is fine but as far as I'm concerned I prefer using user id :

AND user_id!="1" 

It should do the job !

  • 1
    User ID 1 is not necessary an admin; it doesn't even have to exist. – fuxia Apr 12 '13 at 11:18
  • you're right :/ – JMau Apr 19 '13 at 20:01

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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