Estimate Article Read Time For Shopify


Add Read Time on Blogs With Liquid Code

Some people love reading. Others want to know when it will be over. To satisfy either site visitor, it is helpful to estimate how long it should take to read blog articles. The average adult reading speed of is about 200 to 250 words per minute. College students read around 300 words per minute. Sentence complexity and subject matter have a bearing.

Roll Up Your Sleeves

Shopify is an e-commerce platform on which sellers build custom websites based on themes. Each theme adheres to similar underlying structure based on programming code called Liquid.

Before making modifications to your Shopify theme, it is good to duplicate it. Within Admin, under the lefthand navigation, choose Online Store: Themes. Click the menu for the active theme, Actions: Duplicate. Work on the duplicate and preview before activating when done.

Now you access the Liquid programming code with Actions: Edit code menu. Themes created within the past few years use Sections and Templates. If you see Sections, then edit the file under this area called article.template.liquid. If not, edit the file under Templates called article.liquid.

At the top, above the opening HTML, insert the following code:

  {%- comment -%} // estimate read time // {%- endcomment -%}
{%- assign article = article.content -%}{%- assign readtime = '' -%}
{%- if article != blank -%}
  {%- comment -%} // exclude html markup from word count // {%- endcomment -%}
{%- assign words = article | strip_html | split:' ' -%}
  {%- comment -%} // how many words do people read per minute? (200-300) // {%- endcomment -%}
{%- capture readtime -%}{{ words.size | divided_by: 200 | round | at_least: 1 }}{%- endcapture -%}
{%- capture readtime -%}Estimate {{ readtime }}-minute read{%- endcapture -%}
{%- endif -%}
  {%- comment -%} // place this where you want it to appear on the page // {%- endcomment -%}
{{ readtime }}

Notes between {% comment %} tags perform no action, but explain the purpose for the code below it. Without the comments, there are only 7 lines of code. Notice that the code counts words after stripping HTML for accuracy. Place the {{ readtime }} element where desired within the layout, formatting it with whatever CSS style is appropriate for size, color, and alignment.

This feature is currently enabled on ClinicalPosters blog and article pages. Our read time is set to 180 words per minute to compensate for viewing graphics, references, and links. Are you interested in more tips and code snippets like this? Please indicate so within the comment field.

  1. What Is the Average Reading Speed?
  2. Shopify Cheat Sheet.
  3. Main image by pasja1000 from Pixabay.
Kevin Williams is a Shopify Partner that has been program­ming data­base systems since 1990 and writing since 2010, before main­tain­ing an e-commerce site in Perl. Along with him, explore the Shopify platform and Liquid programming with marketing and writing tips.

Include Meaningful Comment