I’m trying to figure out a way in WordPress to get the total number of comments in a specific category. I’ve read the official docs and function references without success. I however came up with the code below but unfortunately, it only selects one $termid (i.e it picks the first termid of the first category) and displays the result in all categories. Please help.
<?php
$categories = get_categories( array(
'hide_empty' => 0,
'hierarchical' => 0,
'exclude' => '1' //exclude uncategorised
));
foreach($categories as $category): ?>
global $wpdb;
$catid = $category->cat_ID;
$catname = $category->name;
$count = "SELECT COUNT(*) FROM $wpdb->comments, $wpdb->terms WHERE term_id=$category->term_id";
$result = $wpdb->get_var($count);
?>
I modified a query from the WordPress forum to get what you want. The “big” advantage with this setup is it will only make one request to the database. However, it does mean you will need to modify your script, but I don’t think that is a big deal.
Here’s the query
And here’s how I would write your code above.