Since you’re listing pings separately from comments, you probably need to filter get_comments_number
to exclude pings. Here’s how I do it:
<?php
function oenology_comment_count( $count ) {
// Only filter the comments number
// in the front-end display
if (
// WordPress conditional that returns true if
// the current page is in the WP-Admin back-end
! is_admin()
) {
global $id;
$comments_by_type = &separate_comments( get_comments( 'status=approve&post_id=' . $id ) );
return count( $comments_by_type['comment'] );
}
// Otherwise, when in the WP-Admin
// back end, don't filter comments
// number
else {
return $count;
}
}
// Hook custom comment number into 'get_comments_number'
add_filter('get_comments_number', 'oenology_comment_count', 0);
?>
I am fairly certain this will also impact the comments count with respect to comment pagination, as well. (Caveat: your pings list will output unpaginated.)