[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fhERNy-lFFhGWmiRmyPg2oZztprUL3QmBzeChVdHo4DE":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":16,"download_link":19,"security_score":20,"vuln_count":11,"unpatched_count":11,"last_vuln_date":21,"fetched_at":22,"vulnerabilities":23,"developer":24,"crawl_stats":21,"alternatives":29,"analysis":132,"fingerprints":203},"wptimetoread","WPTimeToRead","1.0.0","kevindaviesnz","https:\u002F\u002Fprofiles.wordpress.org\u002Fkevindaviesnz\u002F","\u003Cp>Simply install. Displays how long a post or page will take to read based not only on the number of words but difficulty.\u003C\u002Fp>\n","Reading time.",0,945,"2017-10-29T18:21:00.000Z","4.7.32","4.6","",[18,4],"reading-time","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwptimetoread.zip",85,null,"2026-03-15T15:16:48.613Z",[],{"slug":7,"display_name":7,"profile_url":8,"plugin_count":25,"total_installs":11,"avg_security_score":20,"avg_patch_time_days":26,"trust_score":27,"computed_at":28},1,30,84,"2026-04-05T09:57:17.509Z",[30,53,75,96,117],{"slug":31,"name":32,"version":33,"author":34,"author_profile":35,"description":36,"short_description":37,"active_installs":38,"downloaded":39,"rating":40,"num_ratings":41,"last_updated":42,"tested_up_to":43,"requires_at_least":44,"requires_php":16,"tags":45,"homepage":50,"download_link":51,"security_score":52,"vuln_count":11,"unpatched_count":11,"last_vuln_date":21,"fetched_at":22},"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,20,"2024-11-17T15:46:00.000Z","6.7.5","3.0.1",[46,47,18,48,49],"estimated-time","posts","time","word-count","https:\u002F\u002Fjasonyingling.me\u002Freading-time-wp\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Freading-time-wp.2.0.17.zip",92,{"slug":54,"name":55,"version":56,"author":57,"author_profile":58,"description":59,"short_description":60,"active_installs":61,"downloaded":62,"rating":63,"num_ratings":64,"last_updated":65,"tested_up_to":43,"requires_at_least":66,"requires_php":16,"tags":67,"homepage":72,"download_link":73,"security_score":52,"vuln_count":25,"unpatched_count":11,"last_vuln_date":74,"fetched_at":22},"worth-the-read","Worth The Read","1.14.3","brianmcculloh","https:\u002F\u002Fprofiles.wordpress.org\u002Fbrianmcculloh\u002F","\u003Cp>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.\u003C\u002Fp>\n\u003Cp>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.\u003C\u002Fp>\n\u003Cp>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\u002For pages. Uses 200wpm as the metric for average reading time.\u003C\u002Fp>\n\u003Cp>You can also place the time commitment label anywhere you want via the [wtr-time] shortcode.\u003C\u002Fp>\n","An adjustable progress meter showing how much of the post\u002Fpage the user has scrolled through, and a read time commitment label near the post titles.",4000,114221,86,27,"2024-12-03T18:48:00.000Z","3.8",[68,69,70,18,71],"length","progress","reading","scroll","http:\u002F\u002Fwww.welldonemarketing.com","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fworth-the-read.1.14.3.zip","2022-12-16 00:00:00",{"slug":76,"name":77,"version":78,"author":79,"author_profile":80,"description":81,"short_description":82,"active_installs":83,"downloaded":84,"rating":85,"num_ratings":86,"last_updated":87,"tested_up_to":88,"requires_at_least":89,"requires_php":90,"tags":91,"homepage":94,"download_link":95,"security_score":85,"vuln_count":11,"unpatched_count":11,"last_vuln_date":21,"fetched_at":22},"wp-reading-progress","WP Reading Progress","1.7.0","Joeri van Veen","https:\u002F\u002Fprofiles.wordpress.org\u002Fruigehond\u002F","\u003Cp>The reading progress bar is a great user experience on longreads. Especially if it accurately depicts the reading progress in the article text, and nothing else. This is standard on single blog posts and enabled by default.\u003C\u002Fp>\n\u003Cp>Customization:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\n\u003Cp>Location top of screen, bottom of screen or below sticky elements.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Select post types you wish the bar to appear, or individual posts.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Choose color of the reading progress bar.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Have the bar start at 0% even when part of the article is visible.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Behaviour:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\n\u003Cp>The reading progress bar has smooth initializing since part of the text may already be visible, after that a lightweight update-function ensures quick response while scrolling.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>The bar can attach itself to multiple (sticky) elements that you define as an admin, the first visible element will be used.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>When there is no (longer a) visible element to attach to, the bar displays at the top.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Use \u003Ccode>dir=rtl\u003C\u002Fcode> on your html tag to have the bar display correctly for right-to-left languages.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Estimated reading time (beta)\u003C\u002Fp>\n\u003Cp>Since 1.6.0 this plugin has rudimentary estimated reading time functionality, for when your theme does not support it out of the box.\u003Cbr \u002F>\nThere are some potential issues, some of which cannot be fixed in a plugin. If it does not work for you, switch it off. It will have no effect on the plugin then.\u003C\u002Fp>\n\u003Cp>This is my 6th WordPress plugin but my first one freely available to everybody. I hope you enjoy using it as much as I enjoy building it!\u003C\u002Fp>\n\u003Cp>Regards,\u003Cbr \u002F>\nJoeri\u003C\u002Fp>\n","Light weight fully customizable reading progress bar. Sticks to top, bottom or sticky menu, with fallback for small screens. Includes ert (beta).",3000,49337,100,19,"2026-02-11T12:10:00.000Z","6.9.4","4.9","5.6",[92,69,93,70],"estimated-reading-time","progressbar","https:\u002F\u002Fgithub.com\u002Fjoerivanveen\u002Fwp-reading-progress","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwp-reading-progress.1.7.0.zip",{"slug":97,"name":98,"version":99,"author":100,"author_profile":101,"description":102,"short_description":103,"active_installs":104,"downloaded":105,"rating":85,"num_ratings":106,"last_updated":107,"tested_up_to":43,"requires_at_least":15,"requires_php":16,"tags":108,"homepage":112,"download_link":113,"security_score":114,"vuln_count":115,"unpatched_count":11,"last_vuln_date":116,"fetched_at":22},"just-writing-statistics","Just Writing Statistics","5.4","Greg Ross","https:\u002F\u002Fprofiles.wordpress.org\u002Fgregross\u002F","\u003Cp>\u003Cstrong>Just Writing Statistics is a fork of WP Word Count\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Just Writing Statistics tells you exactly how many words you’ve written on your site with statistics by:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Top Content\u003C\u002Fli>\n\u003Cli>All Content\u003C\u002Fli>\n\u003Cli>Month\u003C\u002Fli>\n\u003Cli>Year\u003C\u002Fli>\n\u003Cli>Author\u003C\u002Fli>\n\u003Cli>Tags\u003C\u002Fli>\n\u003Cli>Categories\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Frequency (new!)\u003C\u002Fstrong>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Just Writing Statistics also has reading times for each post and page of your site. Find out how many hours of content you’ve written or let readers know how long your articles are. You can include reading time at the top of each of your posts automatically or use a shortcode.\u003C\u002Fp>\n\u003Ch3>Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Quickly see how many posts and pages you’ve created and how many total words they add up to.\u003C\u002Fli>\n\u003Cli>View and display estimated reading times for each piece of content on your site.\u003C\u002Fli>\n\u003Cli>Support for custom post types so you can monitor word counts from content created by your themes and plugins.\u003C\u002Fli>\n\u003Cli>View your writing output for each month broken down by post type.\u003C\u002Fli>\n\u003Cli>See all of your site author’s word counts with breakdowns by post type.\u003C\u002Fli>\n\u003C\u002Ful>\n","Calculate your writing statistics on your WordPress site.",1000,10253,4,"2025-02-26T02:47:00.000Z",[109,18,49,110,111],"authors","words","writing","https:\u002F\u002Ftoolstack.com\u002Fjust-writing-statistics","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fjust-writing-statistics.5.4.zip",90,3,"2025-03-27 00:00:00",{"slug":118,"name":119,"version":120,"author":121,"author_profile":122,"description":123,"short_description":124,"active_installs":104,"downloaded":125,"rating":85,"num_ratings":115,"last_updated":126,"tested_up_to":127,"requires_at_least":89,"requires_php":128,"tags":129,"homepage":130,"download_link":131,"security_score":20,"vuln_count":11,"unpatched_count":11,"last_vuln_date":21,"fetched_at":22},"post-reading-times","Post reading times","2.4.2","Dmitry Litvinov","https:\u002F\u002Fprofiles.wordpress.org\u002Fdmitrylitvinov\u002F","\u003Cp>A plugin that allows you to easily display the reading time of any article. Reading time is calculated based on a person’s standard reading speed. The value is displayed before the text.\u003C\u002Fp>\n","A plugin that allows you to easily display the reading time of any article. Reading time is calculated based on a person's standard reading speed &hellip;",4348,"2023-04-03T18:35:00.000Z","6.2.9","7.1",[18],"https:\u002F\u002Fyrokiwp.ru","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fpost-reading-times.zip",{"attackSurface":133,"codeSignals":184,"taintFlows":195,"riskAssessment":196,"analyzedAt":202},{"hooks":134,"ajaxHandlers":180,"restRoutes":181,"shortcodes":182,"cronEvents":183,"entryPointCount":11,"unprotectedCount":11},[135,140,144,147,150,153,156,160,163,165,167,171,173,176],{"type":136,"name":137,"callback":138,"file":139,"line":26},"action","init","anonymous","src\\wptimetoread.php",{"type":136,"name":141,"callback":142,"file":139,"line":143},"admin_menu","closure",33,{"type":136,"name":145,"callback":138,"file":139,"line":146},"admin_head",38,{"type":136,"name":148,"callback":138,"file":139,"line":149},"admin_footer",39,{"type":136,"name":151,"callback":138,"file":139,"line":152},"wp_head",40,{"type":136,"name":154,"callback":138,"file":139,"line":155},"wp_footer",41,{"type":157,"name":158,"callback":138,"file":139,"line":159},"filter","the_content",44,{"type":136,"name":161,"callback":138,"file":139,"line":162},"add_meta_boxes",79,{"type":136,"name":161,"callback":138,"file":139,"line":164},80,{"type":157,"name":166,"callback":138,"file":139,"line":114},"manage_posts_columns",{"type":136,"name":168,"callback":138,"priority":169,"file":139,"line":170},"manage_posts_custom_column",10,91,{"type":157,"name":172,"callback":138,"file":139,"line":52},"manage_pages_columns",{"type":136,"name":174,"callback":138,"priority":169,"file":139,"line":175},"manage_pages_custom_column",93,{"type":136,"name":177,"callback":138,"file":178,"line":179},"plugins_loaded","wptimetoread.php",35,[],[],[],[],{"dangerousFunctions":185,"sqlUsage":186,"outputEscaping":188,"fileOperations":11,"externalRequests":11,"nonceChecks":11,"capabilityChecks":11,"bundledLibraries":194},[],{"prepared":11,"raw":11,"locations":187},[],{"escaped":11,"rawEcho":25,"locations":189},[190],{"file":191,"line":192,"context":193},"src\\wptimetoreadview.php",48,"raw output",[],[],{"summary":197,"deductions":198},"The \"wptimetoread\" v1.0.0 plugin exhibits a strong security posture based on the provided static analysis and vulnerability history.  The absence of any AJAX handlers, REST API routes, shortcodes, or cron events significantly limits its attack surface, and crucially, there are no unprotected entry points identified.  The code demonstrates good practices by exclusively using prepared statements for SQL queries and performing no file operations or external HTTP requests, further reducing potential vulnerabilities.  The vulnerability history is clean, with no recorded CVEs, which suggests a well-maintained and secure codebase.  However, a notable concern is the lack of output escaping. With 100% of identified outputs not properly escaped, this presents a risk of cross-site scripting (XSS) vulnerabilities if any dynamic content is ever introduced into the plugin's output.  While the current lack of identified vulnerabilities is positive, the unescaped output is a critical weakness that needs to be addressed.",[199],{"reason":200,"points":201},"100% of outputs not properly escaped",8,"2026-03-17T06:58:04.248Z",{"wat":204,"direct":214},{"assetPaths":205,"generatorPatterns":211,"scriptPaths":212,"versionParams":213},[206,207,208,209,210],"\u002Fwp-content\u002Fplugins\u002Fwptimetoread\u002Fcss\u002Ftimetoread_admin.css","\u002Fwp-content\u002Fplugins\u002Fwptimetoread\u002Fjs\u002Fgsdom.js","\u002Fwp-content\u002Fplugins\u002Fwptimetoread\u002Fjs\u002Ftimetoread_admin.js","\u002Fwp-content\u002Fplugins\u002Fwptimetoread\u002Fcss\u002Fwptimetoread.css","\u002Fwp-content\u002Fplugins\u002Fwptimetoread\u002Fjs\u002Ftimetoread.js",[],[207,208,207,210],[],{"cssClasses":215,"htmlComments":216,"htmlAttributes":217,"restEndpoints":218,"jsGlobals":219,"shortcodeOutput":221},[4],[],[],[],[220],"timetoread_params",[]]