How can I get a total word count of one author’s posts? I would like to be able to see what the total word count of their output is, summed across all of their posts (ideally with a breakdown by category/tag/page-or-post).
Answers:
Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.
Method 1
I use a plug-in called Post Word Count to sum the total number of published words across my entire site … then again, I’m the only author, so this is a pretty simple example. But you could start with this plug-in and add a filter that changes the query based on the author’s ID. Basically:
function post_word_count_by_author($author = false) {
global $wpdb;
$now = gmdate("Y-m-d H:i:s",time());
if ($author) $query = "SELECT post_content FROM $wpdb->posts WHERE post_author = '$author' AND post_status= 'publish' AND post_date < '$now'";
else $query = "SELECT post_content FROM $wpdb->posts WHERE post_status = 'publish' AND post_date < '$now'";
$words = $wpdb->get_results($query);
if ($words) {
foreach ($words as $word) {
$post = strip_tags($word->post_content);
$post = explode(' ', $post);
$count = count($post);
$totalcount = $count + $oldcount;
$oldcount = $totalcount;
}
} else {
$totalcount=0;
}
return number_format($totalcount);
}
This function will return a total count of all published words by that author (based on the author ID). If you don’t specify an author ID, it will return a count of all published words. This won’t count post revisions, drafts, or schedule posts, just those currently visible to users.
Disclaimer, I haven’t tested this yet, but it’s based on the original Post Word Count plug-in and should work just fine.
Method 2
In the interest of self-promotion, I have a plugin, WP Word Count, for word counts that might offer what you need and a bit more
All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0