Introduction
ReadTime 1.6 adds an automatic reading estimate and an accessible reading-progress bar to Joomla articles. It can also show word count, estimated finish time, and an image-reading allowance in Plain, Rounded Badge, or Information Card layouts.
- Joomla 4, 5, and 6 compatible
- No jQuery dependency
- Unicode-aware counting with CJK fallback
- Article-aware or full-page progress
- Multiple
{readtime} shortcodes per article - Per-shortcode overrides without changing backend defaults
- Category, menu, article, and view exclusions
- Reduced-motion, print, mobile, and accessibility support
Installation & Upgrade
Requirements
- Joomla 4, 5, or 6
- PHP 8.1 or later recommended
Install
- Open System > Install > Extensions.
- Upload
plg_content_readtime_1.6.zip. - Open System > Manage > Plugins.
- Search for Content - ReadTime.
- Configure the plugin and set Status to Enabled.
- Clear Joomla and browser cache after upgrading.
Upgrade from 1.5
Version 1.6 preserves the 1.5 parameter names and defaults. New settings use safe defaults: article progress, Plain layout, Clock icon, no word count, no finish time, and no percentage label.
General Settings
- Minimum Words Per Minute (
min_wpm) — lower reading-speed value used in the average. Range: 50–1000; step: 10; default: 200. - Maximum Words Per Minute (
max_wpm) — upper reading-speed value. Range: 50–1000; step: 10; default: 300. Reversed values are normalized automatically. - Show in Seconds (
show_in_seconds) — displays seconds instead of minutes. Default: No; useful for micro-content. - Show Progress Bar (
show_progress_bar) — loads and displays the fixed reading-progress indicator. Default: Yes. - Minimum Word Count (
minimum_words) — hides ReadTime when content is shorter than this threshold. Range: 0–10000; default: 0. - Seconds per Image (
image_seconds) — adds reading time for each article image. Range: 0–60; default: 0.
The estimate uses the average of Minimum and Maximum WPM, plus the configured image allowance.
Text & Metrics
- Reading Time Label (
reading_time_text) — text before the estimate. Default: Reading Time:. - Singular Minute Text (
singular_minute_text) — default: minute. - Plural Minutes Text (
plural_minutes_text) — default: minutes. - Singular Second Text (
singular_second_text) — default: second. - Plural Seconds Text (
plural_seconds_text) — default: seconds. - Show Word Count (
show_word_count) — adds the calculated count. Default: No. - Word Count Label (
word_count_text) — shown after the count when enabled. Default: words. - Show Estimated Finish Time (
show_finish_time) — adds an estimated completion clock time. Default: No. - Finish Time Label (
finish_time_text) — default: Finish by.
All visible text is escaped safely and can be customized for the site language.
Progress Bar
- Bar Thickness (
bar_thickness) — fixed bar height; default 5px. - Bar Color (
bar_color) — completed progress colour; default #2299ee. - Bar Position (
bar_position) — Top or Bottom of screen; default Top. - Progress Scope (
progress_scope) — Article Content measures only the article; Entire Page includes header, footer, and other page content. Default: Article Content. - Track Color (
bar_track_color) — remaining progress colour; default #e5e7eb. - Show Progress Percentage (
show_progress_percentage) — shows a compact live percentage label. Default: No.
The bar exposes progressbar semantics and updates aria-valuenow from 0 to 100. Animation is removed when the visitor prefers reduced motion.
Shortcode Basics
Set Display Position to Shortcode {readtime}, then place the token on its own line:
{readtime}
Editor-wrapped markup such as <p>{readtime}</p> is supported. Add several shortcodes to one article to show multiple variants. Every shortcode starts with backend defaults; attributes override only that instance.
Examples
{readtime layout="plain" style="subtle" icon="clock" words="1"}
{readtime layout="badge" style="default" icon="book"}
{readtime layout="card" style="highlighted" words="1" finish="1"}
{readtime layout="badge" seconds="1" label="Quick read:" wpm="300"}
Shortcode Attributes
layout — plain, badge, or card.style — custom, default, subtle, bold, minimal, or highlighted.icon — none, clock, or book.words — show word count.finish — show estimated finish time.seconds — show estimate in seconds.percentage — request the progress percentage.label — custom reading-time label, limited to 100 characters and stripped of HTML.wpm — fixed reading speed from 50 to 1000 for this shortcode.alignment — left, center, or right.scope — article or page.image_seconds — image allowance from 0 to 60.
Boolean attributes accept 1/0, true/false, yes/no, or on/off. Use quotes around values containing spaces.
Exclusions
- Exclude Categories (
excludeCategories) — multi-select categories where ReadTime should not run. - Exclude Menu Items (
excludeMenuItems) — multi-select menu assignments to suppress. - Exclude Articles (
excludeArticles) — repeatable modal article selector. - Exclude Featured Articles View (
exclude_featured) — default No. - Exclude Blog Layout (
exclude_blog) — default No. - Exclude Category View (
exclude_category) — default No.
The plugin runs only for valid com_content articles and avoids content rendered inside unrelated modules.
Demo Recipes
Minimal Line
{readtime layout="plain" style="subtle" icon="clock" words="1"}Rounded Badge
{readtime layout="badge" style="default" icon="book"}Information Card
{readtime layout="card" style="highlighted" words="1" finish="1"}Seconds Display
{readtime layout="badge" style="bold" icon="none" seconds="1" label="Quick read:" wpm="300"}
These are the four configurations shown on the live demo. They can coexist because each shortcode has isolated display overrides.