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).
2 Answers
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.