A very unobtrusive and light-weight reading progress bar indicator showing the user how far scrolled through the current post or page they are. You can control placement and color of the progress bar, and you can choose whether it includes just the main content or also the comments.
The progress bar only displays once the user begins scrolling the page so it is as unobtrusive as possible. Once the user stops scrolling or scrolls down past the content the progress bar subtly mutes until it is needed again.
There is also a reading time commitment feature that you can separately enable. Control the placement (above or below title, or above content), style, and whether it displays on posts and/or pages. Uses 200wpm as the metric for average reading time.
You can also place the time commitment label anywhere you want via the [wtr-time] shortcode.
- Upload the plugin files to the
/wp-content/plugins/worth-the-readdirectory, or install the plugin through the WordPress plugins screen directly.
- Activate the plugin through the ‘Plugins’ screen in WordPress
- Use the Worth The Read screen to configure the plugin
- Enable the plugin by selecting at least one option for “Display On” in the plugin settings screen, such as Posts or Pages
Why isn’t the progress bar showing up?
Make sure you enabled it in the Worth The Read settings page and that you’re actually viewing a single post or page on your site (not your archive page, for instance). The bar won’t display unless you have actually scrolled down into your main content. So if you have stuff going on at the top of your page above your post content (sliders, content panels, ads, etc.) the progress bar will remain hidden until it becomes relevant.
If the height of your post content is less than the height of the visible page, the progress bar will not display since the user already knows how much content there is.
How much control do I have over the look and feel of the progress bar?
You can control the foreground color, background color, transparency, width, offset, and placement of the progress bar. You can also separately control the background color of the comments portion (if enabled).
How does it work?
WordPress action hooks are used to insert small html tags above and below your post/page content and comments. jQuery is used to target those tags and use them to calculate distances on window scroll, and then the actual progress bar is animated accordingly.
Why do you say it’s “unobtrusive”?
The plugin is as minimally distracting visually as it can be while still being easy to find. It auto-mutes any time the user does not need to visually reference it. Technically speaking, the html tags added to the DOM and corresponding CSS are very minimal and will not have any affect on the rest of the page DOM or any other plugins or your theme.
Contributors & Developers
“Worth The Read” is open source software. The following people have contributed to this plugin.Contributors
Translate “Worth The Read” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
- Fixed: Menu priority glitch introduced in 1.13
- New Feature: Ability to display progress bar only on specific posts and pages
- New Feature: Ability to display reading time only on specific posts and pages
- Updated: Redux options framework from 184.108.40.206 to 220.127.116.11
- Tested: Compatible with WordPress 6.1.1
- Tested: Compatible with WordPress 6.0
- New Feature: Option to display time commitment within posts loops, including archives and homepage
- Fixed: Resolved missing options files
- Updated: Redux options framework from 3.6.18 to 18.104.22.168
- Fixed: Comment end div is no longer inserted into the DOM twice
- Fixed: Homepage content is now correctly calculating progress bar length
- New Feature: Option to disable progress bar shadow added
- New Feature: Option to change the progress bar color when the end of the article is reached
- Fixed: Text domain renamed from wtr to worth-the-read so translations plugins work
- New Feature: Reading time now optionally takes images into account and allows you to adjust pictures-per-minute variable
- Fixed: Improved handling of bugs which would clog up error logs
- Fixed: Redux framework compatiblity fatal error resolved
- New Feature: WTR now works with manually-entered custom post types
- New Feature: You can spcify a unique singular format for the time commitment label
- New Feature: Custom time commitment labels on a per-post and per-page basis
- New Feature: You can now disable the progress bar for non-touch devices only
- New Feature: Added RTL support for progress bar
- Updated: Updated Redux (the plugin options framework) from 3.6.8 to 3.6.15
- Updated: Implemented some Redux Framework annoyance helpers (https://hasin.me/2015/04/24/getting-rid-of-redux-framework-annoyances/)
- Fixed: The default time format string is now translation-ready
- Fixed: Commented out some console logging that had been used for debugging
- New Feature: You can remove the reading progress bar and time commitment label from individual posts and pages
- New Feature: You can manually adjust the average words per minute used in the time commitment calculation
- New Feature: Choose between two methods of word counting for the time commitment calculation
- New Feature: Content Offset setting. You can now manually add an offset to where the progress bar thinks the content begins
- New Feature: [wtr-end] shortcode. You can now manually specify where the progress bar thinks the content ends
- Updated: Updated Redux (the plugin options framework) from 3.6.5 to 3.6.8 which removed an unused set_transient causing slow queries
- Fixed: All registered custom post types are now available to select in the custom post types plugin options
- Fixed: Removed some php notices/warnings that popped up in error_logs
- Fixed: Non-latin languages now work with the time commitment calculation
- Fixed: Removed unused wtr-comments-end div injected into posts/pages with no comments
- Added custom post types to the time commitment label
- Added new option to change muted progress bar color in addition to opacity
- Added separate progress bar placement and offset options that apply only to touch devices
- Improved logic of where to display the time commitment label. You can now display it with a shortcode only instead of auto-placement.
- Improved time commitment label so the minimum read time is 1 minute (i.e. it will no longer display any “0” minute reads)
- Increased z-index of the progress slider from 99 to 99999
- Fixed PHP in_array notices in a few places
- Changed page slug of Redux options for better compatibility
- Updated installation instructions in readme.txt
- Removed a couple unneeded admin js/css files after migrating to Redux framework
- Fixed tagging issue causing 500 error
- Complete rewrite of options panel in Redux options framework
- Added shortcode [wtr-time] for custom placement of reading time commitment
- Scripts/styles no longer load on homepage if progress bar is not set to display on the homepage
- Comments div anchor only renders where applicable
- Added new time commitment feature
- Added custom post types compatibility
- Added home page compatibility
- Added disable for touch devices feature
- Added placement offset feature
- Added muted opacity feature (was previously locked at .5)
- Improved top placement to work better with WordPress admin bar on various screen sizes
- Changed “width” setting label to “thickness” to be more intuitive
- Changed “mute” setting label to “fixed opacity” to be more intuitive
- Fixed php notices that displayed while wp_debug was turned on
- Added ability to display progress bar on posts and pages, instead of only posts
- Added new settings to adjust width and opacity of progress bar
- Added new setting to choose whether progress bar stays muted on scroll
- Improved calculations of progress bar scroll placement when Include Comments is on
- Fixed a few text strings that weren’t wrapped in gettext function (i18n)
- Added settings link directly to plugin page
- Improved detection of comments
- Initial release