{"id":363709,"date":"2026-09-10T19:20:17","date_gmt":"2026-09-10T19:20:17","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/read-time-calculator\/"},"modified":"2026-09-10T19:20:02","modified_gmt":"2026-09-10T19:20:02","slug":"readlyte-reading-time","status":"publish","type":"plugin","link":"https:\/\/mfe.wordpress.org\/plugins\/readlyte-reading-time\/","author":15589588,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.1","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"Readlyte - Reading Time","header_author":"Muniza Sultan","header_description":"Automatically calculates and displays estimated reading time for blog posts. Includes a shortcode, a Gutenberg block, and configurable display settings.","assets_banners_color":"0c5055","last_updated":"2026-09-10 19:20:02","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/muniza-sultan.vercel.app\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":42,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"munizasultan","date":"2026-09-10 19:20:02","revision":3690381}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3690449,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3690443,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3690449,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3690443,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"readlyte-reading-time\/reading-time":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"readlyte-reading-time\/reading-time","title":"Reading Time (Readlyte)","category":"widgets","icon":"clock","description":"Displays the estimated reading time for this post.","keywords":["readlyte","read time","reading time","estimate"],"version":"1.0.0","textdomain":"readlyte-reading-time","editorScript":"rdlt-block-editor","style":"rdlt-block-style","supports":{"html":false,"align":["left","center","right"]}}},"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3690443,"resolution":"1","location":"assets","locale":"","width":1400,"height":948},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3690443,"resolution":"2","location":"assets","locale":"","width":799,"height":455},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3690443,"resolution":"3","location":"assets","locale":"","width":1615,"height":967},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3690443,"resolution":"4","location":"assets","locale":"","width":432,"height":822}},"screenshots":[]},"plugin_section":[],"plugin_tags":[323,529,148076,43466,27629],"plugin_category":[],"plugin_contributors":[280134],"plugin_business_model":[],"class_list":["post-363709","plugin","type-plugin","status-publish","hentry","plugin_tags-blog","plugin_tags-content","plugin_tags-gutenberg","plugin_tags-read-time","plugin_tags-reading-time","plugin_contributors-munizasultan","plugin_committers-munizasultan"],"banners":{"banner":"https:\/\/ps.w.org\/readlyte-reading-time\/assets\/banner-772x250.png?rev=3690443","banner_2x":"https:\/\/ps.w.org\/readlyte-reading-time\/assets\/banner-1544x500.png?rev=3690449","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/readlyte-reading-time\/assets\/icon-128x128.png?rev=3690449","icon_2x":"https:\/\/ps.w.org\/readlyte-reading-time\/assets\/icon-256x256.png?rev=3690443","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/readlyte-reading-time\/assets\/screenshot-1.png?rev=3690443","caption":""},{"src":"https:\/\/ps.w.org\/readlyte-reading-time\/assets\/screenshot-2.png?rev=3690443","caption":""},{"src":"https:\/\/ps.w.org\/readlyte-reading-time\/assets\/screenshot-3.png?rev=3690443","caption":""},{"src":"https:\/\/ps.w.org\/readlyte-reading-time\/assets\/screenshot-4.png?rev=3690443","caption":""}],"raw_content":"<!--section=description-->\n<p>Readlyte estimates how long it will take a visitor to read a post, based on its word count and a configurable words-per-minute rate, and displays it as a small badge.<\/p>\n\n<p><strong>Features<\/strong><\/p>\n\n<ul>\n<li>Automatic display before or after post content \u2014 no template edits required.<\/li>\n<li><code>[rdlt_reading_time]<\/code> shortcode for manual placement, including <code>[rdlt_reading_time id=\"123\"]<\/code> for another post.<\/li>\n<li>A \"Reading Time (Readlyte)\" Gutenberg block, server-rendered so it always matches your current settings.<\/li>\n<li>An Elementor widget (when Elementor is active), with per-instance overrides for words-per-minute\/text\/icon and full Style tab controls (color, typography, icon gap).<\/li>\n<li>Configurable words-per-minute, display text (<code>{time}<\/code> \/ <code>{unit}<\/code> placeholders), and which post types it applies to.<\/li>\n<li>Word count strips HTML tags, shortcodes, and block-editor comments so the estimate reflects visible text only.<\/li>\n<li>Theme-friendly: styled entirely with CSS classes and custom properties (<code>--rdlt-color<\/code>, <code>--rdlt-icon-color<\/code>, <code>--rdlt-font-size<\/code>, <code>--rdlt-gap<\/code>), so a theme can restyle the badge from its own stylesheet.<\/li>\n<li>Developer filters: <code>rdlt_word_count<\/code>, <code>rdlt_calculated_read_time<\/code>, <code>rdlt_read_time_text<\/code>, <code>rdlt_read_time_icon<\/code>.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>readlyte-reading-time<\/code> folder to <code>\/wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress.<\/li>\n<li>Go to Settings \u2192 Readlyte to configure words-per-minute, display text, position, and enabled post types.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"can%20i%20place%20the%20read%20time%20somewhere%20specific%20in%20my%20template%3F\"><h3>Can I place the read time somewhere specific in my template?<\/h3><\/dt>\n<dd><p>Yes. Set \"Display mode\" to \"Shortcode \/ block only\" in Settings \u2192 Readlyte, then use the <code>[rdlt_reading_time]<\/code> shortcode or the \"Reading Time (Readlyte)\" block wherever you like, or call <code>RDLT_Display::instance()-&gt;render_badge( $post_id )<\/code> directly in a theme template.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20gutenberg%20and%20the%20classic%20editor%3F\"><h3>Does it work with Gutenberg and the Classic Editor?<\/h3><\/dt>\n<dd><p>Yes. The shortcode works with both. The block requires the block editor (Gutenberg \/ WordPress 5.8+).<\/p><\/dd>\n<dt id=\"how%20is%20word%20count%20calculated%3F\"><h3>How is word count calculated?<\/h3><\/dt>\n<dd><p>HTML tags, shortcodes, and block-editor comments are stripped before counting whitespace-separated words in the visible text.<\/p><\/dd>\n<dt id=\"can%20i%20change%20the%20icon%20shown%20next%20to%20the%20read%20time%3F\"><h3>Can I change the icon shown next to the read time?<\/h3><\/dt>\n<dd><p>Yes, with the <code>rdlt_read_time_icon<\/code> filter. Return your own HTML (inline SVG, a <code>&lt;i&gt;<\/code> icon-font tag, or an <code>&lt;img&gt;<\/code>), or return an empty string to remove the icon entirely.<\/p>\n\n<pre><code>\/\/ Swap in a Font Awesome icon.\nadd_filter( 'rdlt_read_time_icon', function( $icon, $post_id ) {\n    return '&lt;i class=\"fa-regular fa-clock\" aria-hidden=\"true\"&gt;&lt;\/i&gt;';\n}, 10, 2 );\n\n\/\/ Remove the icon.\nadd_filter( 'rdlt_read_time_icon', '__return_empty_string' );\n<\/code><\/pre>\n\n<p>The icon is sanitized with <code>wp_kses<\/code> (svg\/path\/circle\/i\/span\/img only), so only presentational markup gets through.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release as Readlyte (previously submitted under the name \"Read Time Calculator\"; renamed at the request of the WordPress.org Plugin Review Team for name distinctiveness \u2014 all identifiers, the shortcode tag, CSS classes, and the option name were updated accordingly).<\/li>\n<li>Automatic display, <code>[rdlt_reading_time]<\/code> shortcode, Gutenberg block, and Elementor widget.<\/li>\n<li>Developer filters: <code>rdlt_word_count<\/code>, <code>rdlt_calculated_read_time<\/code>, <code>rdlt_read_time_text<\/code>, <code>rdlt_read_time_icon<\/code>.<\/li>\n<\/ul>","raw_excerpt":"Automatically calculates and displays estimated reading time for blog posts, with a shortcode, a Gutenberg block, and an Elementor widget.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/mfe.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/363709","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mfe.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/mfe.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/mfe.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=363709"}],"author":[{"embeddable":true,"href":"https:\/\/mfe.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/munizasultan"}],"wp:attachment":[{"href":"https:\/\/mfe.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=363709"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/mfe.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=363709"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/mfe.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=363709"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/mfe.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=363709"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/mfe.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=363709"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/mfe.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=363709"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}