How to Add Estimated Reading Time in Elementor

By Aliko Sunawang

Last updated on April 14, 2026

Elementor Pro has a Theme Builder feature which you can use to create a custom single post template on your WordPress site. You have absolute control over the elements you want to add.

There is one element you can't add, though. It is estimated reading time.

If you want to add the estimated reading time element to your single post template, this post will show you how.

I will use the no-plugin approach in this post. So, a little code snippet is required. No worries, I will provide the snippet as well as how to add it.

Jump to sections ⤵️

Want to add a premium vibe to your Elementor design? Use our button hover effects collection.

Nice idea!

Button demo

Is It Really Necessary to Add Estimated Reading Time?

You can create a custom single post template for two main reasons: to increase reading experience and to boost conversion.

For the first reason, other than a clean design, you can add additional elements such as reading progress indicator and estimated reading time.

Elementor already has a built-in feature to add the reading progress indicator. While for estimated reading time, you need a little extra effort because the feature is not available yet by default.

Adding estimated reading time is not required, but it will be a great move to improve reading experience on your website. You will earn a good first-impress from your readers by doing this little trick.

How to Add Estimated Reading Time in Elementor

As mentioned, I will show how to add estimated reading time in Elementor without using a plugin. Instead, I will use a custom snippet approach which involves two core steps:

Step 1: Add a New WordPress Function

The first step you need to do is to add the function that will automatically add the estimated reading time to your blog posts. Be it new blog posts or existing blog posts.

Here is the PHP snippet of the function that you need to add:

function reading_time() {
    // Access the global post object to get the current ID
    global $post;
    $content = get_post_field( 'post_content', $post->ID );
    $word_count = str_word_count( strip_tags( $content ) );
    $readingtime = ceil($word_count / 260);
    // Using a ternary operator for cleaner pluralization
    $timer = ($readingtime == 1) ? " minute read" : " minutes read"; 
    return $readingtime . $timer;
}
add_shortcode('readingtime_display', 'reading_time');

How does the code work?

First, it gets the total words from a blog post then divides it by 260.

Why 260?

According to ScienceDirect, it is the average silent reading time for adult in English

If you have a casual audience, you can lower the number down to, for instance, 200.

The "minute read" text and "minutes read" are the texts that will show up next to the minute number. "minuted read" will show up if the estimated reading time is one minute or slower.

Conversely, the "minutes read" will show up if the estimated reading time is above one minute.

You can change them per your preference.

Where to Add the Code?

If you are new to WordPress, this step is a bit tricky. Before doing this step, I highly recommend you to backup your website just in case.

If your hosting provider already has a daily backup feature (like Cloudways, for instance), you don't need to backup your website manually. You can simply restore the previous version of your website if everything doesn't go as planned.

So, where to add the code?

First, you need to understand that when you are adding the code, you are adding a new custom function in WordPress.

In WordPress, there are several methods to add a new custom function.

The easiest way is by editing the functions.php file of your theme and adding your code here. But I don't recommend this method because the code may get overridden in the future when you update your theme.

Instead of editing the functions.php file, you can create a custom plugin dedicated to hosting custom functions.

In the future, if you want to add a new custom function, you can simply edit the plugin file and add your code here.

Creating a Custom Plugin to Host Custom Functions

You will need a file manager in this step. If your hosting provider offers one, you can simply use it. If it does, you can use one of the following file manager plugins:

In this post itself, I will use WP File Manager because it is the file manager plugin I personally use.

After installing and activating the file manager plugin, go to WP File Manager -> WP File Manager on your WordPress dashboard.

WP File Manager menu

Go to the plugins folder under the wp-content folder and add a new folder. You can give any name to this folder. Something like "custom-functions" would be good as it represents the purpose of the plugin.

Adding a new folder in WP File Manager

Go to the newly created folder and add a new plain text file.

Adding a new file in WP File Manager

Give your file a name. Replace the .txt file extension with .php.

Replace the file extension with PHP

Edit the file by clicking the pencil icon and paste the following code to the editor. Don't forget to save the changes.

<?php
/*
Plugin Name: Custom Functions
Plugin URI: https://pagebuildertemplates.com/
Description: Custom Plugin for adding custom code
Version: 1.0.0
Author: Your Name
*/
Saving the file changes in WP File Manager

Your plugin is now installed but not activated yet. To activate it, go to Plugins -> Installed Plugins. Find the newly installed plugin and click the Activate link.

Activating an installed plugin in WordPress

Adding the Custom Function

Your custom plugin is now ready. You can use it to host custom functions on your WordPress. Including the function to show the estimated reading time in Elementor.

A custom function itself is a PHP code snippet that adds a certain functionality or feature on your WordPress site.

In many cases, using a custom function makes more sense than installing a new plugin as it requires no maintenance and keeps your site neat.

In many cases, a certain functionality can be added using several lines of code. Like the one you are about to add, for instance.

So, how to add the custom function.

First, go to Plugins -> Plugin File Editor. If you don't see this menu item, check the settings on your security plugin if you have one.

Plugin file editor in WordPress

Select the plugin you want to edit the file of from the dropdown menu on the upper-right corner and click the Select button.

Select a plugin to edit

Paste the code snippet to the editor and click the Update File button.

Update File button in WordPress plugin file editor

The custom function is now ready to use. Before we step into the next step, copy the shortcode readingtime_display. You will need this shortcode in the next step below.

Reading time shortcode

Step 2: Create/Edit the Single Post Template and Add the Shortcode

In this step, you need to create a new custom template for the single post. Or, if you already have one, you can simply edit it.

In this post, I will edit one of my existing single post templates.

By the way, we have a collection of professionally designed single post templates for Elementor in case you need one.

Go to Elementor -> Theme Builder to access the Elementor Theme Builder feature where you can edit and create custom templates.

Accessing Elementor Theme Builder

In the Elementor Theme Builder screen, select a single post template you want to add the estimated reading time to and edit it.

Editing a single post template in Elementor Theme Builder

Once the Elementor editor opens, select the Post Info widget to edit it. If your single post template doesn't have it yet, you can simply add it.

Editing Post Info widget in Elementor

Add a new meta data item and set the data type to Custom. Click the database icon and select Shortcode.

Setting custom meta data in Elementor Post Info widget

Click the wrench icon and paste your shortcode. Make sure to include to square brackets.

Adding shortcode in Elementor Post Info widget

As you add the shortcode, you should see estimated reading time shows up on your single post template design.

Estimated reading time in Elementor editor

That's how to add estimated reading time in Elementor without using an extra plugin. Not that hard. Right?

Video Version

I have also created the following video to make it easy for you to implement the tutorial.

Summary

Elementor Theme Builder offers absolute control over the design of the single post template on your WordPress website. You can also add any element you want for the sake of reading experience. One of which is estimated reading time.

This element is quite helpful to increase user experience. Especially if you run a content heavy website with lots of lengthy articles.

By adding estimated reading time, readers will have a clear clue over the time they need to finish an article, which gives a good first impression on your website.

Aliko Sunawang

Aliko is a professional blogger and web creator. He has been blogging with WordPress since 2013. In his spare time, he loves going out to take some photos.

  • Browse Templates
  • Download Elementor
  • Get Hosting Discount