How to count total words for posts published by one author?

Here’s a basic concept how I’d do the word counting and showing the count. Hopefully this serves as a starting point.

I think it would be a good idea to store the word count in a transient, so it isn’t calculated on each and every author archive page load.

function author_word_count() {
    // get current author
    $author_id = get_queried_object_id();
    // check if there's valid word count transient, show that if so
    $word_count = get_transient( $author_id . '_word_count' );
    if ( $word_count ) {
        echo $word_count;
    } else {
        // fallback to calculating word count, show it and save it as transient
        $word_count = calculate_author_posts_words( $author_id );
        echo $word_count;
    }
}

Helper function for calculation

function calculate_author_posts_words( $author_id ) {
    $author_posts = get_author_posts( $author_id );
    $count = 0;
     if ( ! empty( $author_posts->posts ) ) {
            // If you have gazillion posts, then this might hit your server hard I guess. 
            // There might be more performant ways to doing this, but I can't think of any right now
            foreach( $author_posts->posts as $p ) {
                $count = $count + prefix_wcount( $p->post_content );
            }
     }
     set_transient( $author_id . '_word_count', $count, $expiration ); // Save the count, set suitable expiration time
    return $count;
}

Helper function to get authors posts

function get_author_posts( $id ) {
    // Do WP_Query with author's id and return it
}

Helper function to count single post’s word count. Modified from Counting words in a post

function prefix_wcount( $post_content ){
    return sizeof(explode(" ", $post_content));
}

You could also hook a custom update function to save_post to update the word count transient when a new post is made or and existing one is updated.

function update_word_count_transient( $post_id ) {
    // check that we're intentionally saving / updating post
    // get post content
    // get transient
    // calculate words and and it to transient count
    // save transient
}
add_action( 'save_post', 'update_word_count_transient' );

This is just a concept and I haven’t tested the code examples. Please add prefixes, validation, sanitizing, fix typos/bugs and fine tune functions as needed before using in production.

If you don’t know php and are looking for a copy-and-paste solution, then please hire a professional to do the work for you