get_comment_count [ WordPress Functions ]
get_comment_count ( $post_id = 0 )
| Parameters: |
|
| Uses: |
|
| Returns: |
|
| Defined at: |
|
| Codex |
Similar Functions: get_comment_pages_count, get_comment_author, get_comment_meta, get_comment_time, get_comment_link
The amount of comments in a post or total comments.
A lot like {@link wp_count_comments()}, in that they both return comment stats (albeit with different types). The {@link wp_count_comments()} actual caches, but this function does not.
Source
function get_comment_count( $post_id = 0 ) {
global $wpdb;
$post_id = (int) $post_id;
$where = '';
if ( $post_id > 0 ) {
$where = $wpdb->prepare("WHERE comment_post_ID = %d", $post_id);
}
$totals = (array) $wpdb->get_results("
SELECT comment_approved, COUNT( * ) AS total
FROM {$wpdb->comments}
{$where}
GROUP BY comment_approved
", ARRAY_A);
$comment_count = array(
"approved" => 0,
"awaiting_moderation" => 0,
"spam" => 0,
"total_comments" => 0
);
foreach ( $totals as $row ) {
switch ( $row['comment_approved'] ) {
case 'spam':
$comment_count['spam'] = $row['total'];
$comment_count["total_comments"] += $row['total'];
break;
case 1:
$comment_count['approved'] = $row['total'];
$comment_count['total_comments'] += $row['total'];
break;
case 0:
$comment_count['awaiting_moderation'] = $row['total'];
$comment_count['total_comments'] += $row['total'];
break;
default:
break;
}
}
return $comment_count;
}
