[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fgBIP6IG1Pt4hnXMKRqAUbQEaPjK5Vv0pzresTVuwyYk":3},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":11,"num_ratings":11,"last_updated":13,"tested_up_to":14,"requires_at_least":15,"requires_php":16,"tags":17,"homepage":23,"download_link":24,"security_score":25,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":27,"vulnerabilities":28,"developer":29,"crawl_stats":26,"alternatives":36,"analysis":128,"fingerprints":310},"reading-time-progress-bar","Reading Time & Progress Bar","1.0.2","Code Canel","https:\u002F\u002Fprofiles.wordpress.org\u002Fcodecanel\u002F","\u003Cp>Do you find that potential readers frequently bypass your posts due to concerns about the time investment? Are you inadvertently losing valuable readership as a result?\u003C\u002Fp>\n\u003Cp>The Reading Time & Progress Bar plugin effortlessly showcases the estimated reading duration for blog articles, coupled with an engaging progress bar. This feature not only provides visitors with a swift understanding of the time commitment required for reading a post but also serves as a motivating factor to encourage them to read through to the conclusion.\u003C\u002Fp>\n\u003Cp>Typically, visitors initially attempt to scan an entire post, aiming to glean as much information as possible at a glance. By specifying the reading time in minutes, this approach not only engages users but also serves as a powerful motivator to encourage them to delve into the post’s content.\u003C\u002Fp>\n\u003Cp>Enhance the reader’s experience with a user-friendly progress bar that elegantly tracks their position within the post. As readers scroll through the content, this sleek progress bar provides real-time feedback, visually illustrating the remaining portion of the post. This intuitive feature not only informs readers of their progress but also guides them effortlessly through the article, offering a clear sense of how far they’ve come and how much more lies ahead.\u003C\u002Fp>\n\u003Cp>This plugin employs a cutting-edge image time calculation method to enhance your content. If your post includes images, the plugin seamlessly calculates the time required to view these visuals. You have the flexibility to customize this experience by setting the desired pace, specifying the number of images per minute, ensuring a tailored and engaging reading journey for your audience.\u003C\u002Fp>\n\u003Ch3>Key Features:\u003C\u002Fh3>\n\u003Col>\n\u003Cli>Easy-to-use and intuitive interface\u003C\u002Fli>\n\u003Cli>Customize freedomly\u003C\u002Fli>\n\u003Cli>Responsive and mobile-friendly design\u003C\u002Fli>\n\u003Cli>Lightweight and optimized for fast loading\u003C\u002Fli>\n\u003Cli>Cross-browser compatible\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>Features:\u003C\u002Fh3>\n\u003Ch4>General Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Post Types\u003C\u002Fli>\n\u003Cli>Word Per Minute\u003C\u002Fli>\n\u003Cli>Include Comments\u003C\u002Fli>\n\u003Cli>Include Images\u003C\u002Fli>\n\u003Cli>Images Per Minute\u003C\u002Fli>\n\u003Cli>Reading Time Text : Singular\u003C\u002Fli>\n\u003Cli>Reading Time Text: Plural\u003C\u002Fli>\n\u003Cli>Export & Import\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Reading Time Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Display on\u003C\u002Fli>\n\u003Cli>Text Position\u003C\u002Fli>\n\u003Cli>Text Prefix\u003C\u002Fli>\n\u003Cli>Text Suffix\u003C\u002Fli>\n\u003Cli>Typography\u003C\u002Fli>\n\u003Cli>Text Color\u003C\u002Fli>\n\u003Cli>Background Color\u003C\u002Fli>\n\u003Cli>Custom CSS\u003C\u002Fli>\n\u003Cli>Preview\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Reading Progress Bar Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Display Position \u002F Template\u003C\u002Fli>\n\u003Cli>Height\u003C\u002Fli>\n\u003Cli>Style (Preset Template)\u003C\u002Fli>\n\u003Cli>Offset\u003C\u002Fli>\n\u003Cli>Content Offset\u003C\u002Fli>\n\u003Cli>RTL Support\u003C\u002Fli>\n\u003Cli>Background Opacity\u003C\u002Fli>\n\u003Cli>Foreground Opacity\u003C\u002Fli>\n\u003Cli>Border Radius\u003C\u002Fli>\n\u003Cli>Foreground Color\u003C\u002Fli>\n\u003Cli>Background Color\u003C\u002Fli>\n\u003Cli>Custom CSS\u003C\u002Fli>\n\u003Cli>Preview\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>License\u003C\u002Fh3>\n\u003Cp>This plugin is licensed under the GPL-2.0-or-later: GNU General Public License v2.0\u003C\u002Fp>\n\u003Ch3>Contribute\u003C\u002Fh3>\n\u003Cp>The full source code is available on \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fcodecanel\u002Freading-time-progress-bar\" rel=\"nofollow ugc\">GitHub Repository\u003C\u002Fa>. Feel free to contribute or report an issue.\u003C\u002Fp>\n","The Reading Time & Progress Bar plugin enhances your blog with an estimated reading time and a stylish progress bar.",0,1464,"","6.8.5","6.0","7.4",[18,19,20,21,22],"estimated-time","progress-bar","read-time","reading-progress-bar","word-count","https:\u002F\u002Fcodecanel.com\u002Freading-time-progress-bar","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Freading-time-progress-bar.zip",100,null,"2026-03-15T10:48:56.248Z",[],{"slug":30,"display_name":7,"profile_url":8,"plugin_count":31,"total_installs":32,"avg_security_score":25,"avg_patch_time_days":33,"trust_score":34,"computed_at":35},"codecanel",3,810,30,94,"2026-04-03T21:29:05.656Z",[37,57,77,95,112],{"slug":38,"name":39,"version":40,"author":41,"author_profile":42,"description":43,"short_description":44,"active_installs":45,"downloaded":46,"rating":11,"num_ratings":11,"last_updated":47,"tested_up_to":48,"requires_at_least":49,"requires_php":50,"tags":51,"homepage":54,"download_link":55,"security_score":25,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":56},"article-read-time-lite","Article Read Time Lite – WordPress plugin for displaying total reading time and progress bar","1.0.3","WP Shuffle","https:\u002F\u002Fprofiles.wordpress.org\u002Fwpshuffle\u002F","\u003Cp>As the name explains, \u003Cstrong>Article Read Time Lite\u003C\u002Fstrong> is a free WordPress plugin which calculates the estimated reading time required to read the article in your site\u003Cbr \u002F>\nand presents them in a beautiful manner with our available \u003Cstrong>Paragraph\u003C\u002Fstrong> and \u003Cstrong>Block\u003C\u002Fstrong> Templates. Currently there are all together 4 Beautiful Pre Designed\u003Cbr \u002F>\ntemplates from which you can choose any as per your desire.\u003C\u002Fp>\n\u003Ch4>See Article Read Time Lite features list below:\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>2 Pre Designed Paragraph Templates\u003C\u002Fli>\n\u003Cli>2 Pre Designed Block Templates\u003C\u002Fli>\n\u003Cli>Enable\u002FDisable Article Read Time in Posts\u002FPage or any other post types\u003C\u002Fli>\n\u003Cli>Enable\u002FDisable Progress Bar in Posts\u002FPages or any other Post Types\u003C\u002Fli>\n\u003Cli>Display Word, Characters and Reading Time\u003C\u002Fli>\n\u003Cli>Display Article Read Time before content and after content\u003C\u002Fli>\n\u003Cli>Customize Text as per your need\u003C\u002Fli>\n\u003Cli>Layout customization options available for Progress Bar\u003C\u002Fli>\n\u003Cli>All device friendly and browser Compatibility\u003C\u002Fli>\n\u003Cli>Mobile Responsive\u003C\u002Fli>\n\u003Cli>Translation Ready\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Check Article Read Time Premium Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Article Read Time in Posts\u002FPage or any other Post Types\u003C\u002Fli>\n\u003Cli>Progress Bar in Posts\u002FPages or any other Post Types\u003C\u002Fli>\n\u003Cli>10 Pre designed Paragraph Templates\u003C\u002Fli>\n\u003Cli>10 Pre designed Block Templates\u003C\u002Fli>\n\u003Cli>And many more …\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Check all premium features \u003Ca href=\"https:\u002F\u002F1.envato.market\u002FZd4DrR\" rel=\"nofollow ugc\">here\u003C\u002Fa>\u003C\u002Fp>\n","Calculate and display total reading time| Calculate and display Characters and Words | Progress Bar",20,1789,"2025-12-08T17:08:00.000Z","6.9.4","5.5","7.2",[52,19,20,53,22],"characters-count","reading-time","https:\u002F\u002Fwpshuffle.com\u002Farticle-read-time-lite","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Farticle-read-time-lite.1.0.3.zip","2026-03-15T15:16:48.613Z",{"slug":58,"name":59,"version":60,"author":61,"author_profile":62,"description":63,"short_description":64,"active_installs":65,"downloaded":66,"rating":67,"num_ratings":45,"last_updated":68,"tested_up_to":69,"requires_at_least":70,"requires_php":13,"tags":71,"homepage":74,"download_link":75,"security_score":76,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":56},"reading-time-wp","Reading Time WP","2.0.17","yingles","https:\u002F\u002Fprofiles.wordpress.org\u002Fyingles\u002F","\u003Cp>WP Reading Time let’s you easily add an estimated reading time to your WordPress posts. Activating the plugin will automatically add the reading time to the beginning of your post’s content. This can be deactivated in the Reading Time settings which can be accessed from your Dashboard’s Settings menu. You can also edit the label and postfix from this menu.\u003C\u002Fp>\n\u003Cp>If you’d prefer more control over where you add your reading time you can use the the [rt_reading_time] shortcode to insert the time into a post. This shortcode also excepts values for label and postfix. These are optional. Ex. [rt_reading_time label=”Reading Time:” postfix=”minutes” postfix_singular=”minute”].\u003C\u002Fp>\n","Reading Time WP creates an estimated reading time of your posts that is inserted above the content or by using a shortcode.",30000,424094,96,"2024-11-17T15:46:00.000Z","6.7.5","3.0.1",[18,72,53,73,22],"posts","time","https:\u002F\u002Fjasonyingling.me\u002Freading-time-wp\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Freading-time-wp.2.0.17.zip",92,{"slug":78,"name":79,"version":40,"author":80,"author_profile":81,"description":82,"short_description":83,"active_installs":84,"downloaded":85,"rating":25,"num_ratings":86,"last_updated":87,"tested_up_to":88,"requires_at_least":89,"requires_php":90,"tags":91,"homepage":92,"download_link":93,"security_score":94,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":56},"my-reading-time-lite","My Reading Time Lite","Liton Arefin","https:\u002F\u002Fprofiles.wordpress.org\u002Flitonice13\u002F","\u003Cp>My Reading Time Lite let’s you easily add a reading time to your WordPress posts. The control panel is very easy to configure. You can edit the text and word count per minutes from the panel.\u003C\u002Fp>\n\u003Ch4>Features of the plugin\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Show on before Content\u003C\u002Fli>\n\u003Cli>Show on before Excerpt\u003C\u002Fli>\n\u003Cli>Exclude Images from Reading Time\u003C\u002Fli>\n\u003Cli>Include Shortcode Contents\u003C\u002Fli>\n\u003Cli>Manually Words selection on per minute\u003C\u002Fli>\n\u003Cli>After\u002FBefore Reading Label\u003C\u002Fli>\n\u003Cli>Reading Time Label\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>To use “My Reading Time Lite” you don’t need any other extra configuration. This plugin works fine with any Theme.\u003C\u002Fp>\n\u003Ch3>Liked My Reading Time Lite Plugin?\u003C\u002Fh3>\n\u003Cp>Rate us on \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fsupport\u002Fplugin\u002Fmy-reading-time-lite\u002Freviews\u002F#new-post\" rel=\"ugc\">WordPress Forum 🙂\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>Ask your Question \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fsupport\u002Fplugin\u002Fmy-reading-time-lite\u002F\" rel=\"ugc\">WordPress plugin Support Page\u003C\u002Fa>\u003Cbr \u002F>\nGet Faster Support from \u003Ca href=\"https:\u002F\u002Fjeweltheme.com\u002Fcontact\" rel=\"nofollow ugc\">Our website contact form\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch3>Source Code\u003C\u002Fh3>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Flitonarefin\u002Fmy-reading-time-lite\" rel=\"nofollow ugc\">Source Code\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch3>Support\u003C\u002Fh3>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fjeweltheme.com\u002Fcontact\u002F\" rel=\"nofollow ugc\">Support Forum\u003C\u002Fa>\u003Cbr \u002F>\n\u003Ca href=\"https:\u002F\u002Fjeweltheme.com\u002Fcontact\u002F\" rel=\"nofollow ugc\">Pre-Sale Questions\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch3>✋Want More –\u003C\u002Fh3>\n\u003Cp>If you like our my-reading-time-lite plugin then why not check some other plugins that developed by us:\u003C\u002Fp>\n\u003Cp>🚀 \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fadminify\u002F\" rel=\"ugc\">WP Adminify:\u003C\u002Fa> – The best WordPress Dashboard Customization plugin available in the market. With this plugin you will get 18+ modules like Dark Mode, Menu Editor, Folders, Dashboard Widget Manager, Login Customizer, Admin Columns, Activity Logs and many more.\u003C\u002Fp>\n\u003Cp>🚀 \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fultimate-blocks-for-gutenberg\u002F\" rel=\"ugc\">Master Blocks:\u003C\u002Fa> – “Master Blocks” is a powerful WordPress plugin designed to enhance the functionality of the Gutenberg block editor. With this plugin, users can unlock a wide range of new blocks, offering greater flexibility and creativity when designing and customising their website’s content.\u003C\u002Fp>\n\u003Cp>🚀 \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fmaster-addons\u002F\" rel=\"ugc\">Master Addons:\u003C\u002Fa> – One of the best Elementor Addon plugin that packed with 70+ elements and extensions. You will get all essential elements to design any type Website.\u003C\u002Fp>\n\u003Cp>🚴🏻‍♂️ \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fimage-comparison-elementor-addon\u002F\" rel=\"ugc\">Image Comparison for Elementor:\u003C\u002Fa> – This plugin dedicatedly made for image comparison element. You will get a multiple variation for image comparison. Showcase your before after work easily with the help of this plugin.\u003C\u002Fp>\n\u003Cp>🍡 \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fwp-awesome-faq\u002F\" rel=\"ugc\">Master Accordion:\u003C\u002Fa> – If you are a default WordPress user and need a proper accordion plugin then Master Accordion is for you. You can add as much accordion as you need in multiple way.\u003C\u002Fp>\n\u003Cp>🏕 \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fprettyphoto\u002F\" rel=\"ugc\">WordPress prettyPhoto:\u003C\u002Fa> – This plugin helps you to enable lightbox for your any media file, flash, YouTube, iframes and ajax. Just enable PreetyPhoto in your desired media file and you are done.\u003C\u002Fp>\n","Reading Time lite plugin enables an estimated reading time that inserted above or bottom in post. Insert anywhere using shortcode too.",10,2973,1,"2023-08-21T00:13:00.000Z","6.3.8","4.0","5.6",[18,72,53,73,22],"https:\u002F\u002Fjeweltheme.com","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fmy-reading-time-lite.1.0.3.zip",85,{"slug":96,"name":97,"version":98,"author":99,"author_profile":100,"description":101,"short_description":102,"active_installs":11,"downloaded":103,"rating":25,"num_ratings":86,"last_updated":104,"tested_up_to":105,"requires_at_least":106,"requires_php":107,"tags":108,"homepage":13,"download_link":111,"security_score":94,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":56},"moka-word-count","MOKA Word-Count","1.0","Mohamed Yaghi","https:\u002F\u002Fprofiles.wordpress.org\u002Fmohamedyaghi\u002F","\u003Cp>This plugin is used as a counter for the words and letters inside the article or post,\u003C\u002Fp>\n\u003Cp>and it also helps you know the time taken to read the article or post.\u003C\u002Fp>\n\u003Cp>Features include:\u003Cbr \u002F>\n* It can be controlled by admin\u003Cbr \u002F>\n* You count words in all languages ​​in addition to Arabic\u003Cbr \u002F>\n* It can be controlled through the settings attached to this plugin\u003Cbr \u002F>\n* Built-in WordPress locale codes\u003Cbr \u002F>\n* It contains a file that supports the Arabic language\u003Cbr \u002F>\n* Help bloggers know the number of words and letters in an article\u003C\u002Fp>\n\u003Ch4>Installing manually:\u003C\u002Fh4>\n\u003Col>\n\u003Cli>Unzip all files to the \u003Ccode>wp-content\u002Fplugins\u002Fmoka-word-count\u003C\u002Fcode> directory\u003C\u002Fli>\n\u003Cli>Log into WordPress admin and activate the ‘MOKA word-count’ plugin through the ‘Plugins’ menu\u003C\u002Fli>\n\u003Cli>Go to \u003Cem>MOKA word-count > Home\u003C\u002Fem> in the left-hand menu to start it\u003C\u002Fli>\n\u003C\u002Fol>\n","Count the words and letters of WordPress articles, as well as calculate the time needed to read",1125,"2022-04-05T15:22:00.000Z","5.9.13","5.1","8.0",[109,20,73,110,22],"character-count","word","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fmoka-word-count.1.0.zip",{"slug":113,"name":114,"version":115,"author":116,"author_profile":117,"description":118,"short_description":119,"active_installs":11,"downloaded":120,"rating":25,"num_ratings":86,"last_updated":121,"tested_up_to":48,"requires_at_least":122,"requires_php":107,"tags":123,"homepage":126,"download_link":127,"security_score":25,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":56},"nuvora-reading-time-progress-bar","Nuvora Reading Time & Progress Bar","1.0.0","Sehrish Anam","https:\u002F\u002Fprofiles.wordpress.org\u002Fmeerab123\u002F","\u003Cp>\u003Cstrong>Nuvora Reading Time & Progress Bar\u003C\u002Fstrong> is a lightweight, developer-friendly plugin that adds two things readers love:\u003C\u002Fp>\n\u003Col>\n\u003Cli>\u003Cstrong>A reading time badge\u003C\u002Fstrong> — shown before\u002Fafter your post content.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>A scroll progress bar\u003C\u002Fstrong> — a sleek bar at the top (or bottom) of the screen that fills as the reader scrolls.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch4>✨ What makes it different?\u003C\u002Fh4>\n\u003Cp>\u003Cstrong>AI-assisted reading time adjustment\u003C\u002Fstrong>\u003Cbr \u002F>\nPosts with lots of headings, bullet lists, and short paragraphs are scanned faster by readers. The plugin detects structure in your content and intelligently reduces the estimate — labelled “AI-adjusted” so readers know.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Per-post overrides via meta box\u003C\u002Fstrong>\u003Cbr \u002F>\nOverride the calculated reading time for any post. Hide the badge or progress bar per-post, right from the editor.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Accessibility-first design\u003C\u002Fstrong>\u003Cbr \u002F>\n– Semantic \u003Ccode>role=\"progressbar\"\u003C\u002Fcode> with live \u003Ccode>aria-valuenow\u003C\u002Fcode> updates\u003Cbr \u002F>\n– Meaningful \u003Ccode>aria-label\u003C\u002Fcode> on every element\u003Cbr \u002F>\n– Keyboard-focusable progress bar\u003Cbr \u002F>\n– Fully respects \u003Ccode>prefers-reduced-motion\u003C\u002Fcode>\u003Cbr \u002F>\n– Screen-reader-friendly badge with word count in ARIA label\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Minimal & performant\u003C\u002Fstrong>\u003Cbr \u002F>\n– No jQuery dependency (vanilla JS)\u003Cbr \u002F>\n– No external assets, fonts, or CDN calls\u003Cbr \u002F>\n– No database writes beyond settings\u003Cbr \u002F>\n– No user tracking whatsoever\u003Cbr \u002F>\n– ~1.5 KB JS \u002F ~1.2 KB CSS (gzipped)\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Elementor Widget included\u003C\u002Fstrong>\u003Cbr \u002F>\n– Drag and drop the Reading Time widget directly in Elementor\u003Cbr \u002F>\n– Full widget controls for badge display and styling\u003Cbr \u002F>\n– Works seamlessly with Elementor’s responsive settings\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Developer-friendly\u003C\u002Fstrong>\u003Cbr \u002F>\n– Template tags: \u003Ccode>rte_the_reading_time()\u003C\u002Fcode>, \u003Ccode>rte_get_reading_time()\u003C\u002Fcode>\u003Cbr \u002F>\n– Filters: \u003Ccode>rte_badge_html\u003C\u002Fcode>, \u003Ccode>rte_show_badge\u003C\u002Fcode>, \u003Ccode>rte_ai_adjustment_factor\u003C\u002Fcode>\u003Cbr \u002F>\n– CJK (Chinese\u002FJapanese\u002FKorean) content support\u003Cbr \u002F>\n– Per-post type configuration\u003C\u002Fp>\n\u003Ch4>📐 Settings\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Custom WPM (words per minute) — default 238\u003C\u002Fli>\n\u003Cli>Enable\u002Fdisable AI-assisted adjustment\u003C\u002Fli>\n\u003Cli>Badge position: before content, after content, or both\u003C\u002Fli>\n\u003Cli>Choose which post types show the badge and\u002For progress bar\u003C\u002Fli>\n\u003Cli>Customise badge label text (use \u003Ccode>{time}\u003C\u002Fcode> placeholder)\u003C\u002Fli>\n\u003Cli>Pick progress bar color, height (1–10 px), position (top\u002Fbottom)\u003C\u002Fli>\n\u003Cli>Optional percentage tooltip on hover\u003C\u002Fli>\n\u003Cli>Respect \u003Ccode>prefers-reduced-motion\u003C\u002Fcode> toggle\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>🔧 Template Tags\u003C\u002Fh4>\n\u003Cp>Use in your theme:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>\u003C?php rte_the_reading_time(); \u002F\u002F echoes \"5 min read\" ?>\n\n\u003C?php $data = rte_get_reading_time(); echo $data['minutes']; ?>\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>🪝 Filters\u003C\u002Fh4>\n\u003Cp>\u003Cstrong>Customise badge HTML:\u003C\u002Fstrong>\u003Cbr \u002F>\n    add_filter( ‘rte_badge_html’, function( $html, $result ) { return $html; }, 10, 2 );\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Disable badge conditionally:\u003C\u002Fstrong>\u003Cbr \u002F>\n    add_filter( ‘rte_show_badge’, ‘__return_false’ );\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Tweak AI adjustment factor (0.75–1.0):\u003C\u002Fstrong>\u003Cbr \u002F>\n    add_filter( ‘rte_ai_adjustment_factor’, function( $factor, $html ) { return 0.85; }, 10, 2 );\u003C\u002Fp>\n","A minimalist, accessible reading time badge + scroll progress bar. AI-assisted time adjustment, per-post overrides, zero tracking.",124,"2026-02-24T05:32:00.000Z","5.9",[124,19,20,125,53],"elementor-widget","reading-progress","https:\u002F\u002Fgithub.com\u002Fsehrishanam1\u002Fplugins","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fnuvora-reading-time-progress-bar.1.0.0.zip",{"attackSurface":129,"codeSignals":244,"taintFlows":259,"riskAssessment":304,"analyzedAt":309},{"hooks":130,"ajaxHandlers":221,"restRoutes":239,"shortcodes":240,"cronEvents":241,"entryPointCount":242,"unprotectedCount":243},[131,136,141,144,148,152,156,161,165,170,175,179,182,185,189,192,195,199,202,205,209,212,215,218],{"type":132,"name":133,"callback":134,"priority":84,"file":135,"line":34},"filter","plugin_action_links","register_action_links","Core.php",{"type":137,"name":138,"callback":139,"priority":84,"file":135,"line":140},"action","admin_menu","register_admin_menu",97,{"type":137,"name":142,"callback":143,"file":135,"line":25},"admin_init","redirect_to_settings_page",{"type":132,"name":145,"callback":146,"file":135,"line":147},"coca_rtpb_plugin_settings_data","hook_settings_data",101,{"type":137,"name":149,"callback":150,"file":135,"line":151},"wp_enqueue_scripts","register_frontend_dependencies",102,{"type":137,"name":153,"callback":154,"file":135,"line":155},"admin_enqueue_scripts","register_admin_dependencies",103,{"type":132,"name":157,"callback":158,"priority":159,"file":135,"line":160},"the_content","hook_the_content_data",1000000000,104,{"type":132,"name":162,"callback":163,"priority":159,"file":135,"line":164},"comments_template","hook_comments_template",105,{"type":137,"name":166,"callback":167,"priority":11,"file":168,"line":169},"wp","init_frontend","includes\\frontend\\Reading_Progress_Bar.php",26,{"type":137,"name":171,"callback":172,"priority":173,"file":168,"line":174},"wp_head","get_reading_progress_bar_style_output",9,44,{"type":137,"name":176,"callback":177,"priority":11,"file":168,"line":178},"wp_body_open","show_the_reading_progress_bar",50,{"type":137,"name":166,"callback":167,"file":180,"line":181},"includes\\frontend\\Reading_Time.php",31,{"type":132,"name":162,"callback":183,"file":180,"line":184},"hook_remove_the_title_from_comments",32,{"type":132,"name":186,"callback":187,"file":180,"line":188},"next_post_link","remove_markup_from_content",59,{"type":132,"name":190,"callback":187,"file":180,"line":191},"previous_post_link",60,{"type":137,"name":171,"callback":193,"priority":173,"file":180,"line":194},"get_reading_time_style_output",68,{"type":132,"name":196,"callback":197,"priority":84,"file":180,"line":198},"pre_render_block","anonymous",73,{"type":132,"name":157,"callback":200,"file":180,"line":201},"hook_add_reading_time_above_the_content",95,{"type":132,"name":157,"callback":203,"file":180,"line":204},"hook_add_reading_time_below_the_content",99,{"type":132,"name":206,"callback":207,"file":180,"line":208},"the_title","hook_add_reading_time_before_title_excerpt",106,{"type":132,"name":206,"callback":210,"file":180,"line":211},"hook_add_reading_time_after_title_excerpt",110,{"type":132,"name":213,"callback":187,"file":180,"line":214},"excerpt_more",140,{"type":132,"name":206,"callback":216,"file":180,"line":217},"hook_add_reading_time_before_title_archive",146,{"type":132,"name":206,"callback":219,"file":180,"line":220},"hook_add_reading_time_after_title_archive",150,[222,229,232,236],{"action":223,"nopriv":224,"callback":225,"hasNonce":226,"hasCapCheck":224,"file":227,"line":228},"coca_rtpb_plugin_import_settings",false,"hook_import_settings",true,"includes\\admin\\Export_And_Import.php",19,{"action":230,"nopriv":224,"callback":231,"hasNonce":226,"hasCapCheck":224,"file":227,"line":45},"coca_rtpb_plugin_export_settings","hook_export_settings",{"action":233,"nopriv":224,"callback":197,"hasNonce":224,"hasCapCheck":224,"file":234,"line":235},"coca_rtpb_plugin_get_panel_data","includes\\admin\\WP_Ajax.php",24,{"action":237,"nopriv":224,"callback":197,"hasNonce":224,"hasCapCheck":224,"file":234,"line":238},"coca_rtpb_plugin_save_settings",25,[],[],[],4,2,{"dangerousFunctions":245,"sqlUsage":246,"outputEscaping":248,"fileOperations":86,"externalRequests":11,"nonceChecks":242,"capabilityChecks":11,"bundledLibraries":258},[],{"prepared":11,"raw":11,"locations":247},[],{"escaped":249,"rawEcho":31,"locations":250},76,[251,254,256],{"file":227,"line":252,"context":253},117,"raw output",{"file":168,"line":255,"context":253},91,{"file":180,"line":257,"context":253},268,[],[260,278,286,296],{"entryPoint":261,"graph":262,"unsanitizedCount":11,"severity":277},"hook_import_settings (includes\\admin\\Export_And_Import.php:29)",{"nodes":263,"edges":275},[264,269],{"id":265,"type":266,"label":267,"file":227,"line":268},"n0","source","$_POST",37,{"id":270,"type":271,"label":272,"file":227,"line":273,"wp_function":274},"n1","sink","update_option() [Settings Manipulation]",66,"update_option",[276],{"from":265,"to":270,"sanitized":226},"low",{"entryPoint":279,"graph":280,"unsanitizedCount":11,"severity":277},"\u003CExport_And_Import> (includes\\admin\\Export_And_Import.php:0)",{"nodes":281,"edges":284},[282,283],{"id":265,"type":266,"label":267,"file":227,"line":268},{"id":270,"type":271,"label":272,"file":227,"line":273,"wp_function":274},[285],{"from":265,"to":270,"sanitized":226},{"entryPoint":287,"graph":288,"unsanitizedCount":11,"severity":277},"hook_save_all_settings (includes\\admin\\WP_Ajax.php:154)",{"nodes":289,"edges":294},[290,292],{"id":265,"type":266,"label":267,"file":234,"line":291},162,{"id":270,"type":271,"label":272,"file":234,"line":293,"wp_function":274},181,[295],{"from":265,"to":270,"sanitized":226},{"entryPoint":297,"graph":298,"unsanitizedCount":11,"severity":277},"\u003CWP_Ajax> (includes\\admin\\WP_Ajax.php:0)",{"nodes":299,"edges":302},[300,301],{"id":265,"type":266,"label":267,"file":234,"line":291},{"id":270,"type":271,"label":272,"file":234,"line":293,"wp_function":274},[303],{"from":265,"to":270,"sanitized":226},{"summary":305,"deductions":306},"The 'reading-time-progress-bar' plugin v1.0.2 exhibits a generally good security posture, with no recorded vulnerabilities or critical taint flows. The code demonstrates strong practices in areas like SQL query preparation and output escaping, which are crucial for preventing common web application vulnerabilities. The absence of bundled libraries and external HTTP requests further reduces the potential attack surface. However, there are specific areas that warrant attention. The presence of two AJAX handlers without authentication checks is a notable concern, potentially exposing functionalities to unauthorized access. While the total attack surface is small, these unprotected entry points can still be exploited if they perform sensitive actions or expose information.  The plugin's clean vulnerability history is a positive sign, suggesting ongoing maintenance and awareness of security.  Overall, while the plugin is relatively secure due to its code quality in key areas, the unprotected AJAX endpoints represent a tangible risk that should be addressed.",[307],{"reason":308,"points":84},"AJAX handlers without auth checks","2026-03-17T05:54:23.481Z",{"wat":311,"direct":322},{"assetPaths":312,"generatorPatterns":315,"scriptPaths":316,"versionParams":319},[313,314],"\u002Fwp-content\u002Fplugins\u002Freading-time-progress-bar\u002Fbuild\u002Findex.asset.php","\u002Fwp-content\u002Fplugins\u002Freading-time-progress-bar\u002Fbuild\u002Feditor.asset.php",[],[317,318],"\u002Fwp-content\u002Fplugins\u002Freading-time-progress-bar\u002Fbuild\u002Findex.js","\u002Fwp-content\u002Fplugins\u002Freading-time-progress-bar\u002Fbuild\u002Feditor.js",[320,321],"reading-time-progress-bar\u002Fbuild\u002Findex.asset.php?ver=","reading-time-progress-bar\u002Fbuild\u002Feditor.asset.php?ver=",{"cssClasses":323,"htmlComments":324,"htmlAttributes":325,"restEndpoints":328,"jsGlobals":329,"shortcodeOutput":331},[4],[],[326,327],"data-block","data-settings",[],[330],"window.readingTimeProgressBar",[]]