Go Back to Parent Doc

Reading Time

Show visitors how long a post takes to read, for example "1,240 words, 7 minutes read time" or "7 min read". There are three ways to add it:

  1. Automatically, before or after the content of chosen post types, with the Reading Time module.
  2. Anywhere, with the [esse_reading_time] shortcode.
  3. In the block editor or Site Editor, with the Reading Time block.

All three use the same word counting, so the numbers always match.

The Reading Time module

Switch it on: Essentials → Modules → Reading Time.
Configure it: Essentials → Reading Time.

SettingWhat it doesDefault
Display PositionBefore content or After content.Before content
Post TypesWhich post types show the reading time on single posts. If you untick everything, Post is used.Post
Words Per MinuteThe reading speed used for the estimate.200
FormatLong ("5 minutes read time") or Short ("5 min read").Long
Show Word CountAdd the word count, for example "30 words, 1 minute read time".On
LabelOptional text before the reading time, such as "Reading time:". Leave empty to hide it.(empty)
ArchivesAlso show the reading time for each post in blog, archive and search listings, next to the excerpt or content. Uses the post types above.Off

The reading time is always at least 1 minute, and it’s rounded up.

How words are counted

Shortcodes and HTML are removed first, so only the words readers actually see are counted. Counting works in every language:

  • Languages that separate words with spaces (English, Spanish, Bengali, Hindi, Arabic, Russian and so on) are counted word by word, including accented letters and combining marks.
  • Chinese and Japanese don’t use spaces between words, so each character counts as one word.

Styles load only on the post types where reading time is shown, and on listings when Archives is on.

The [esse_reading_time] shortcode

Place the reading time in a widget, a page builder, a classic editor post or a theme template. The shortcode works whether or not the module adds reading time automatically, as long as the module is switched on.

[esse_reading_time]
AttributeWhat it doesDefault
post_idShow the reading time of a specific post instead of the current one.Current post
formatlong or short.The module’s Format setting
wordsyes or no to show or hide the word count.The module’s Show Word Count setting
labelText shown before the reading time.The module’s Label setting

Examples

[esse_reading_time format="short" words="no"]
[esse_reading_time label="Reading time:"]
[esse_reading_time post_id="42"]

In a PHP template: <?php echo do_shortcode( '[esse_reading_time]' ); ?>

The shortcode uses the module’s Words Per Minute setting.

The Reading Time block

Find Reading Time in the block inserter under the Essentials category, or type /reading time. The block is registered by the plugin and works whether or not the Reading Time module is switched on.

Block settings (sidebar)

SettingWhat it doesDefault
Words per minuteReading speed for this block.200
Show word countPrefix the word count.On
Show iconShow the clock icon.On
LabelOptional text before the reading time.(empty)

Styling: the block supports alignment (left, center, right, wide), text and background color, font size and line height, padding and margin, border (color, radius, style, width) and shadow, all from the standard block toolbar and sidebar.

In the Site Editor and Query Loops: add the block to your single post template to show it on every post, or put it inside a Query Loop (for example on your blog or archive template) to show each post’s own reading time.

The block has its own settings, so it doesn’t use the module’s Format or Label. It always uses the long format.

Customizing the markup

Developers can change the module and shortcode HTML with the esse_module_esse_reading_time_output filter, and reuse the counting with esse_get_reading_time(). See the Developer Reference.

Troubleshooting

It shows on posts but not on pages. Tick Page under Post Types.

It doesn’t show in my blog listing. Switch Archives on. Some themes show neither the excerpt nor the content in listings. In that case, add the Reading Time block to your theme’s Query Loop instead.

It appears twice. You probably have the module adding it automatically and a block or shortcode in the same place. Remove one, or untick that post type in the module’s Post Types.

The estimate seems too long or short. Adjust Words Per Minute. 200 is a comfortable average, and 230–250 suits lighter content.

Shopping Cart
  • Your cart is empty.