How to create a reading timer from WordPress content

  • Reading time
  • WordPress
How to create a reading timer from WordPress content

Following on from the post for How to create a reading timer from Advanced custom fields content, I thought I’d share how to create the same thing but for the standard WordPress content. So, here is a little function that calculates the average reading time based upon the post content.

Working out the reading time

First, place this within your theme or child/custom theme’s functions file.

// Reading time calculator
  function reading_time($the_post_ID) {
    // get the content
    $the_content = get_post_field( 'post_content', $the_post_ID );
    // count the number of words
    $words = str_word_count( strip_tags( $the_content ) );

    // calculate reading time based on number of words
    // divided by 200 - average words read per minute
    $readingtime = ceil($words / 200);
  if ($readingtime <= 1) { // If the reading time is equal to or less than 1
    $timer = " minute";
  } else {
    $timer = " minute";
  }
  if ($readingtime == 0) { // if the reading time equals 0 then change it to 1
    $totalreadingtime = "1" . $timer . " read";
  } else {
    $totalreadingtime = $readingtime . $timer . " read";
  }
  return $totalreadingtime;
}

 

Display the reading time

To display the reading time within your template files use this snippet.

// Display the reading time
// Wrap this in the HTML tag of your liking
echo reading_time(get_the_ID());

 


 

Like this post? Then I think you will like this one too

How to create a reading timer from ACF Pro flexible content

Let's build something great

Interested in starting your own website project with me? Excellent! I'd love to talk to you about your idea.

Get in touch

I aim to reply within 48 hours.