[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fWqWHc34Z38UQa7Oae7NoOA5Gq0JUgFO20vaW9g3sRJE":3},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":13,"num_ratings":14,"last_updated":15,"tested_up_to":16,"requires_at_least":17,"requires_php":18,"tags":19,"homepage":25,"download_link":26,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30,"vulnerabilities":31,"developer":32,"crawl_stats":29,"alternatives":36,"analysis":139,"fingerprints":299},"factoid","Factoid","1.14","delahoc","https:\u002F\u002Fprofiles.wordpress.org\u002Fdelahoc\u002F","\u003Cp>Factoid allows you to place interesting, amusing and inspiring little random facts and quotes on your WordPress website through both shortcodes (for inserting into posts and pages) and widgets (for inserting into sidebars and other layout elements). Factoid allows you to select the type and category of Factoid you’d like displayed, and also provides a number of display and layout options. Factoids are fetched across the internet from our extensive and constantly growing database.\u003C\u002Fp>\n","Place random quotes or trivia facts on your site through shortcodes or widgets",40,2629,100,1,"2018-01-29T01:55:00.000Z","4.9.29","4.0","",[20,21,22,23,24],"content","facts","quotes","random","trivia","https:\u002F\u002Foctober.com.au\u002Fhome\u002Ffactoid\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Ffactoid.1.14.zip",85,0,null,"2026-03-15T15:16:48.613Z",[],{"slug":7,"display_name":7,"profile_url":8,"plugin_count":14,"total_installs":11,"avg_security_score":27,"avg_patch_time_days":33,"trust_score":34,"computed_at":35},30,84,"2026-04-05T18:57:58.743Z",[37,59,81,101,121],{"slug":38,"name":39,"version":40,"author":41,"author_profile":42,"description":43,"short_description":44,"active_installs":45,"downloaded":46,"rating":47,"num_ratings":48,"last_updated":49,"tested_up_to":50,"requires_at_least":51,"requires_php":18,"tags":52,"homepage":57,"download_link":58,"security_score":13,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"random-content","Random Content","1.6.4","Jeremy Green","https:\u002F\u002Fprofiles.wordpress.org\u002Fendocreative\u002F","\u003Cp>\u003Cstrong>Random Content\u003C\u002Fstrong> is the easiest way to keep your WordPress site feeling fresh and dynamic. Create content groups, add as many items as you want, and display a random selection anywhere on your site with a single shortcode or widget.\u003C\u002Fp>\n\u003Cp>Every time a visitor loads the page, they see something different. That means higher engagement, more clicks, and a site that never feels stale.\u003C\u002Fp>\n\u003Ch4>What can you do with it?\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Rotate testimonials\u003C\u002Fstrong> — Show a different customer quote on every page load\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Randomize banners\u003C\u002Fstrong> — Keep sidebar and header promotions fresh without manual updates\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Cycle CTAs\u003C\u002Fstrong> — Test different calls-to-action to see what gets clicks\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Display tips or quotes\u003C\u002Fstrong> — Add variety to any page, post, or widget area\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Shuffle FAQs\u003C\u002Fstrong> — Surface different questions each visit\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Free features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Display random content anywhere with the \u003Ccode>[random_content]\u003C\u002Fcode> shortcode\u003C\u002Fli>\n\u003Cli>Use in posts, pages, sidebars, or widget areas\u003C\u002Fli>\n\u003Cli>Organize content into groups for separate rotation sets\u003C\u002Fli>\n\u003Cli>Control how many items display at once\u003C\u002Fli>\n\u003Cli>Full WordPress editor support — text, images, HTML, shortcodes, embeds\u003C\u002Fli>\n\u003Cli>Lightweight and fast with built-in caching\u003C\u002Fli>\n\u003Cli>No coding required\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Getting started\u003C\u002Fh4>\n\u003Col>\n\u003Cli>Create entries under the Random Content post type\u003C\u002Fli>\n\u003Cli>Organize them into Groups (works like categories)\u003C\u002Fli>\n\u003Cli>Add \u003Ccode>[random_content group_id=\"123\"]\u003C\u002Fcode> wherever you want random content to appear\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>That’s it. Your content rotates automatically on every page load.\u003C\u002Fp>\n\u003Ch4>Need more control?\u003C\u002Fh4>\n\u003Cp>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Frandomcontentpro.com\u002F\" rel=\"nofollow ugc\">Random Content Pro\u003C\u002Fa>\u003C\u002Fstrong> gives you complete control over what visitors see and when they see it:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Scheduling\u003C\u002Fstrong> — Set start and end dates so content appears and disappears automatically. Run time-limited campaigns without touching your site.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Visitor targeting\u003C\u002Fstrong> — Show different content based on user role, login status, UTM parameters, referrer, or page type.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Frequency controls\u003C\u002Fstrong> — Prevent the same item from showing twice in a row. Set cooldown periods between displays.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Weighted selection\u003C\u002Fstrong> — Assign weights (1–10) to each item. Higher weight = shown more often. Perfect for A\u002FB testing.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Display rules\u003C\u002Fstrong> — Control visibility per group: logged-in only, specific roles, specific page types.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Fallback content\u003C\u002Fstrong> — Define what shows when all items are filtered out. Never display an empty space.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Automatic updates\u003C\u002Fstrong> — Get new features and fixes delivered directly to your WordPress dashboard.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Frandomcontentpro.com\u002F\" rel=\"nofollow ugc\">Learn more about Random Content Pro \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan>\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch4>Shortcode usage\u003C\u002Fh4>\n\u003Cp>Display a random item from all entries:\u003Cbr \u002F>\n    [random_content]\u003C\u002Fp>\n\u003Cp>Display from a specific group:\u003Cbr \u002F>\n    [random_content group_id=”64″]\u003C\u002Fp>\n\u003Cp>Display multiple items at once:\u003Cbr \u002F>\n    [random_content group_id=”13″ num_posts=”3″]\u003C\u002Fp>\n\u003Cp>Load content via AJAX (useful for sites with page caching):\u003Cbr \u002F>\n    [random_content group_id=”64″ ajax=”yes”]\u003C\u002Fp>\n\u003Ch4>Widget usage\u003C\u002Fh4>\n\u003Cp>Navigate to Appearance \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Widgets, add the Random Content widget to any sidebar, and select a group from the dropdown. Leave the group empty to pull from all entries.\u003C\u002Fp>\n","Display random content anywhere on your WordPress site. Rotate testimonials, banners, CTAs, and more with a simple shortcode or widget.",3000,54411,98,34,"2026-03-11T04:34:00.000Z","6.9.4","5.0.1",[53,54,38,55,56],"content-rotation","dynamic-content","rotating-content","testimonials","https:\u002F\u002Fwww.randomcontentpro.com","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Frandom-content.1.6.4.zip",{"slug":60,"name":61,"version":62,"author":63,"author_profile":64,"description":65,"short_description":66,"active_installs":67,"downloaded":68,"rating":69,"num_ratings":70,"last_updated":71,"tested_up_to":50,"requires_at_least":72,"requires_php":73,"tags":74,"homepage":18,"download_link":77,"security_score":78,"vuln_count":79,"unpatched_count":28,"last_vuln_date":80,"fetched_at":30},"easy-quotes","Easy Quotes","1.3.7","Jürgen Müller","https:\u002F\u002Fprofiles.wordpress.org\u002Fjuergen74\u002F","\u003Cp>Easy Quotes let you collect and display your favorite Quotes \u002F Reviews \u002F Testimonials or any other short snippet of Text you want to present on your site.\u003C\u002Fp>\n\u003Cp>Main Features:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Custom Post Type “Quotes” with Quick Edit and Bulk Actions\u003C\u002Fli>\n\u003Cli>Add Custom Meta: Author, Date and Rating with Stars\u003C\u002Fli>\n\u003Cli>Gutenberg Block “Easy Quotes” to present your Collection all over your Site. (Block-Widget\u002FPages\u002FPosts etc.)\u003C\u002Fli>\n\u003Cli>Show Random or Daily “Quotes” by Category or choose a Specific Quote.\u003C\u002Fli>\n\u003Cli>Option to rotate Quotes by Category\u003C\u002Fli>\n\u003Cli>Option to show Quotes as a List by Category\u003C\u002Fli>\n\u003Cli>Use Google Fonts and other typographic features to style your Quote.\u003C\u002Fli>\n\u003Cli>Built to blend into any style, but customizable with CSS to fit your needs.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Try my new Plugin\u003C\u002Fh3>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Feasy-architect\u002F\" rel=\"ugc\">Easy Architect\u003C\u002Fa>\u003C\u002Fp>\n","Collect and show your favorite Quotes \u002F Reviews \u002F Testimonials or any other short snippet of Text.",700,14366,94,6,"2026-01-07T13:03:00.000Z","6.7","7.4",[75,76,22,23,56],"daily","lyrics","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Feasy-quotes.1.3.7.zip",97,2,"2025-09-22 00:00:00",{"slug":82,"name":83,"version":84,"author":85,"author_profile":86,"description":87,"short_description":88,"active_installs":89,"downloaded":90,"rating":91,"num_ratings":70,"last_updated":92,"tested_up_to":93,"requires_at_least":94,"requires_php":18,"tags":95,"homepage":99,"download_link":100,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"easy-random-quotes","Easy Random Quotes","1.8","Kailey (trepmal)","https:\u002F\u002Fprofiles.wordpress.org\u002Ftrepmal\u002F","\u003Cp>Insert quotes and pull them randomly into your pages and posts (via shortcodes) or your template (via template tags).\u003Cbr \u002F>\nCan refer to quote IDs to use specific quotes. Also widget-enabled\u003C\u002Fp>\n","Insert quotes and pull them randomly into your pages and posts (via shortcodes) or your template (via template tags).",500,21239,86,"2016-09-29T02:57:00.000Z","4.6.30","2.8",[96,97,98],"random-quotes","shortcodes","widget","http:\u002F\u002Ftrepmal.com\u002Fplugins\u002Feasy-random-quotes\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Feasy-random-quotes.1.8.zip",{"slug":23,"name":102,"version":103,"author":104,"author_profile":105,"description":106,"short_description":107,"active_installs":108,"downloaded":109,"rating":13,"num_ratings":110,"last_updated":111,"tested_up_to":112,"requires_at_least":17,"requires_php":113,"tags":114,"homepage":118,"download_link":119,"security_score":120,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"Random","1.3","Scribit","https:\u002F\u002Fprofiles.wordpress.org\u002Fscribit\u002F","\u003Cp>With Random plugin you can insert into your WordPress website one or more random contents coming from your posts.\u003Cbr \u002F>\nThe source contents can be pages, posts or custom post types.\u003Cbr \u002F>\nYou can display information in many different ways:\u003Cbr \u002F>\n* A list of post titles\u003Cbr \u002F>\n* One or more full contents or excerpts\u003Cbr \u002F>\n* Raw URLs to posts permalink\u003C\u002Fp>\n","Random, a great plugin designed to insert random contents, posts and other types, into your website. Enjoy its shortcodes!",300,7907,4,"2024-10-21T09:32:00.000Z","6.6.5","5.6",[115,23,38,116,117],"casual","random-post","random-posts","https:\u002F\u002Fwww.scribit.it\u002Fen\u002Fwordpress-plugins\u002Fget-random-contents\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Frandom.1.3.zip",92,{"slug":122,"name":123,"version":124,"author":125,"author_profile":126,"description":127,"short_description":128,"active_installs":108,"downloaded":129,"rating":130,"num_ratings":70,"last_updated":131,"tested_up_to":50,"requires_at_least":132,"requires_php":73,"tags":133,"homepage":18,"download_link":136,"security_score":137,"vuln_count":110,"unpatched_count":79,"last_vuln_date":138,"fetched_at":30},"xv-random-quotes","XV Random Quotes","2.7.0","Xavi Ivars","https:\u002F\u002Fprofiles.wordpress.org\u002Fxavivars\u002F","\u003Cp>XV Random Quotes helps you collect and display random quotes everywhere on your WordPress site. Built with modern WordPress standards using Custom Post Types, Gutenberg blocks, and the REST API.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>🎯 Modern WordPress Integration\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Custom Post Type\u003C\u002Fstrong> – Quotes are managed as native WordPress posts with full revision history\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Gutenberg Blocks\u003C\u002Fstrong> – Three dedicated blocks: Random Quote, Specific Quote, and List Quotes\u003C\u002Fli>\n\u003Cli>\u003Cstrong>REST API\u003C\u002Fstrong> – Access quotes programmatically for headless WordPress and custom integrations\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Taxonomy Support\u003C\u002Fstrong> – Organize quotes with categories and authors (with URL support)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Block Editor\u003C\u002Fstrong> – Full support with dedicated meta boxes for quote content and source\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>✨ Key Features\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Multiple Display Methods\u003C\u002Fstrong> – Widgets, shortcodes, template tags, and Gutenberg blocks\u003C\u002Fli>\n\u003Cli>\u003Cstrong>AJAX-Powered Widgets\u003C\u002Fstrong> – Automatic quote rotation without page reload (configurable timer)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Category Filtering\u003C\u002Fstrong> – Display quotes from specific categories or all quotes\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Author Management\u003C\u002Fstrong> – Track quote authors with optional URL links\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Flexible Ordering\u003C\u002Fstrong> – Random or sequential quote display\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Native Styling Toggle\u003C\u002Fstrong> – Use plugin’s default styling or your theme’s styles\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Complete Backward Compatibility\u003C\u002Fstrong> – All legacy shortcodes and template tags still work\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>📦 Display Options\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Gutenberg Blocks\u003C\u002Fstrong>:\n\u003Cul>\n\u003Cli>Random Quote Block – Display one or more random quotes\u003C\u002Fli>\n\u003Cli>Specific Quote Block – Show a particular quote by ID\u003C\u002Fli>\n\u003Cli>List Quotes Block – Paginated list of quotes with filtering\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Widgets\u003C\u002Fstrong>: Sidebar widget with AJAX refresh and category filtering\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Shortcodes\u003C\u002Fstrong>: \u003Ccode>[stray-random]\u003C\u002Fcode>, \u003Ccode>[stray-id]\u003C\u002Fcode>, \u003Ccode>[stray-all]\u003C\u002Fcode> for posts and pages\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Template Tags\u003C\u002Fstrong>: \u003Ccode>stray_random_quote()\u003C\u002Fcode>, \u003Ccode>stray_a_quote()\u003C\u002Fcode> for theme integration\u003C\u002Fli>\n\u003Cli>\u003Cstrong>REST API\u003C\u002Fstrong>: \u003Ccode>\u002Fwp-json\u002Fxv-random-quotes\u002Fv1\u002Fquote\u002Frandom\u003C\u002Fcode> for custom integrations\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>🔄 Automatic Migration\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Upgrading from v1.x? The plugin automatically detects the need of migrating your existing quotes to the new Custom Post Type system. The migration is always manual to prevent race conditions and duplicate imports. When the plugin is activated or updated, an admin notice prompts the user to start the migration via a button. The migration then processes quotes in batches via AJAX.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>🎨 Customization\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Customize HTML wrappers (before\u002Fafter quote, author, source)\u003C\u002Fli>\n\u003Cli>Control author and source link formatting\u003C\u002Fli>\n\u003Cli>AJAX loading messages and animations\u003C\u002Fli>\n\u003Cli>Native WordPress styling or custom CSS\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>See \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fxavivars\u002Fxv-random-quotes\u002Fblob\u002Fmain\u002FRELEASE_NOTES.md\" rel=\"nofollow ugc\">RELEASE_NOTES.md\u003C\u002Fa> for complete v2.0 features and migration guide.\u003C\u002Fp>\n\u003Ch3>Credits\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>For main development of Stray Quotes, \u003Ca href=\"http:\u002F\u002Funalignedcode.wordpress.com\u002Fmy-wordpress-plugins\u002Fstray-random-quotes\u002F\" rel=\"nofollow ugc\">Ico\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>For Multi-widget functionality, \u003Ca href=\"http:\u002F\u002Fwp.gdragon.info\u002F2008\u002F07\u002F06\u002Fcreate-multi-instances-widget\u002F\" rel=\"nofollow ugc\">Millian’s tutorial\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>For help in developing user-end AJAX functionality, \u003Ca href=\"http:\u002F\u002Fwww.matrixagents.org\" rel=\"nofollow ugc\">AgentSmith\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>For search functionality and bugfixing, \u003Ca href=\"http:\u002F\u002Fwww.zeyalabs.ch\u002Fposts\u002F2010\u002Fstray-quotes-z\u002F\" rel=\"nofollow ugc\">Sergey Sirotkin\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Localization\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>German, thanks to Markus Griesbach\u003C\u002Fli>\n\u003Cli>Chinese, thanks to WGMking\u003C\u002Fli>\n\u003Cli>Croatian, thanks to \u003Ca href=\"http:\u002F\u002Fwww.atrium.hr\u002F\" rel=\"nofollow ugc\">Rajic\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Danish, thanks to \u003Ca href=\"http:\u002F\u002Fwordpress.blogos.dk\u002F\" rel=\"nofollow ugc\">Georg\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Actually, these translations are not updated to the latest version.\u003Cbr \u002F>\nI am looking for new localizers, all languages welcome!\u003C\u002Fp>\n\u003Cp>\u003Cem>Please note:\u003C\u002Fem> the best way to \u003Cstrong>submit new or updated translations\u003C\u002Fstrong> is to send me a direct link to the localization files in \u003Ca href=\"http:\u002F\u002Fxavi.ivars.me\u002Fcontacta\u002F\" rel=\"nofollow ugc\">the contact page\u003C\u002Fa> of my website. This way the files are made available to the users sooner, and without waiting for a new release.\u003C\u002Fp>\n\u003Cp>\u003Cem>Please note:\u003C\u002Fem> If you want to create a localized copy of XV Random Quotes, consider skipping the help page and translate the rest. This will save you quite some time. The help page has a lot of text.\u003C\u002Fp>\n\u003Ch3>Known Issues\u003C\u002Fh3>\n\u003Cp>None currently reported for v2.0. If you find an issue, please report it on \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fxavivars\u002Fxv-random-quotes\u002Fissues\" rel=\"nofollow ugc\">GitHub\u003C\u002Fa>.\u003C\u002Fp>\n","Display and rotate quotes anywhere on your WordPress site. Fully integrated with WordPress Custom Post Types, Gutenberg blocks, and REST API.",8991,74,"2026-02-17T18:38:00.000Z","6.0",[134,135,22,23,98],"blocks","gutenberg","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fxv-random-quotes.2.7.0.zip",54,"2025-04-03 00:00:00",{"attackSurface":140,"codeSignals":166,"taintFlows":288,"riskAssessment":289,"analyzedAt":298},{"hooks":141,"ajaxHandlers":159,"restRoutes":160,"shortcodes":161,"cronEvents":165,"entryPointCount":14,"unprotectedCount":28},[142,147,151,155],{"type":143,"name":144,"callback":144,"file":145,"line":146},"action","admin_init","factoid.php",35,{"type":143,"name":148,"callback":149,"file":145,"line":150},"admin_menu","add_menu",36,{"type":143,"name":152,"callback":153,"file":145,"line":154},"wp_enqueue_scripts","register_plugin_styles",37,{"type":143,"name":156,"callback":157,"file":145,"line":158},"widgets_init","factoid_load_widget",435,[],[],[162],{"tag":4,"callback":163,"file":145,"line":164},"fa_shortcode",38,[],{"dangerousFunctions":167,"sqlUsage":168,"outputEscaping":170,"fileOperations":28,"externalRequests":28,"nonceChecks":28,"capabilityChecks":14,"bundledLibraries":287},[],{"prepared":28,"raw":28,"locations":169},[],{"escaped":171,"rawEcho":172,"locations":173},5,60,[174,177,179,181,183,185,187,189,191,193,195,197,199,201,203,205,207,209,211,213,215,217,219,221,223,225,227,229,230,232,234,235,237,239,240,242,243,245,247,248,250,252,254,255,257,259,261,262,264,266,267,269,271,273,275,276,278,280,282,284],{"file":145,"line":175,"context":176},152,"raw output",{"file":145,"line":178,"context":176},210,{"file":145,"line":180,"context":176},213,{"file":145,"line":182,"context":176},221,{"file":145,"line":184,"context":176},224,{"file":145,"line":186,"context":176},225,{"file":145,"line":188,"context":176},229,{"file":145,"line":190,"context":176},230,{"file":145,"line":192,"context":176},232,{"file":145,"line":194,"context":176},236,{"file":145,"line":196,"context":176},245,{"file":145,"line":198,"context":176},250,{"file":145,"line":200,"context":176},251,{"file":145,"line":202,"context":176},252,{"file":145,"line":204,"context":176},253,{"file":145,"line":206,"context":176},254,{"file":145,"line":208,"context":176},256,{"file":145,"line":210,"context":176},257,{"file":145,"line":212,"context":176},261,{"file":145,"line":214,"context":176},309,{"file":145,"line":216,"context":176},310,{"file":145,"line":218,"context":176},311,{"file":145,"line":220,"context":176},313,{"file":145,"line":222,"context":176},314,{"file":145,"line":224,"context":176},315,{"file":145,"line":226,"context":176},317,{"file":145,"line":228,"context":176},318,{"file":145,"line":228,"context":176},{"file":145,"line":231,"context":176},325,{"file":145,"line":233,"context":176},326,{"file":145,"line":233,"context":176},{"file":145,"line":236,"context":176},331,{"file":145,"line":238,"context":176},332,{"file":145,"line":238,"context":176},{"file":145,"line":241,"context":176},344,{"file":145,"line":241,"context":176},{"file":145,"line":244,"context":176},345,{"file":145,"line":246,"context":176},348,{"file":145,"line":246,"context":176},{"file":145,"line":249,"context":176},349,{"file":145,"line":251,"context":176},350,{"file":145,"line":253,"context":176},352,{"file":145,"line":253,"context":176},{"file":145,"line":256,"context":176},353,{"file":145,"line":258,"context":176},354,{"file":145,"line":260,"context":176},355,{"file":145,"line":260,"context":176},{"file":145,"line":263,"context":176},356,{"file":145,"line":265,"context":176},357,{"file":145,"line":265,"context":176},{"file":145,"line":268,"context":176},358,{"file":145,"line":270,"context":176},359,{"file":145,"line":272,"context":176},361,{"file":145,"line":274,"context":176},372,{"file":145,"line":274,"context":176},{"file":145,"line":277,"context":176},373,{"file":145,"line":279,"context":176},375,{"file":145,"line":281,"context":176},385,{"file":145,"line":283,"context":176},386,{"file":285,"line":286,"context":176},"factoidsettings.php",16,[],[],{"summary":290,"deductions":291},"The 'factoid' v1.14 plugin exhibits a generally strong security posture based on the provided static analysis and vulnerability history. The absence of known CVEs and a clean vulnerability history are positive indicators, suggesting consistent security focus from the developers.  The static analysis reveals no critical or high-severity issues in taint flows, dangerous functions, or SQL queries, all of which are handled with prepared statements.  Furthermore, the plugin has a very small attack surface with only one shortcode and no unprotected entry points. The presence of capability checks on the shortcode is also a good practice.\n\nHowever, there are areas for improvement. The most significant concern is the low percentage of properly escaped output (8%). This indicates a potential for Cross-Site Scripting (XSS) vulnerabilities, as user-supplied data might be rendered without sufficient sanitization, allowing attackers to inject malicious scripts. While the plugin currently has no known vulnerabilities, this output escaping issue presents a latent risk that could be exploited in the future. The lack of nonce checks on the shortcode, while not explicitly flagged as unprotected due to capability checks, is a missed opportunity to further strengthen its security against certain types of attacks.\n\nIn conclusion, 'factoid' v1.14 is a relatively secure plugin with a commendable lack of historical vulnerabilities and good practices in areas like SQL and dangerous functions. Its limited attack surface is also a strength. The primary weakness lies in the inadequate output escaping, which introduces a notable risk that should be addressed to achieve a more robust security profile.",[292,295],{"reason":293,"points":294},"Low percentage of properly escaped output",8,{"reason":296,"points":297},"No nonce checks on shortcode",3,"2026-03-16T22:09:08.974Z",{"wat":300,"direct":309},{"assetPaths":301,"generatorPatterns":304,"scriptPaths":305,"versionParams":306},[302,303],"\u002Fwp-content\u002Fplugins\u002Ffactoid\u002Ffactoid.css","\u002Fwp-content\u002Fplugins\u002Ffactoid\u002Ffactoid.js",[],[303],[307,308],"factoid.css?ver=","factoid.js?ver=",{"cssClasses":310,"htmlComments":321,"htmlAttributes":322,"restEndpoints":326,"jsGlobals":327,"shortcodeOutput":329},[311,312,313,314,315,316,317,318,319,320],"factoid_container","factoid_title_container","factoid_content_container","factoid_header","factoid_content","factoid_source","factoid_footer_container","factoid_footer_innerleft","factoid_footer_innerright","factoid_image_opacity",[],[323,324,325],"data-sfw","data-category","data-type",[],[328],"fa_getFactoid",[330,331,332,333,334,335,336,337,338,339],"\u003Cdiv class=\"factoid_container","\u003Cdiv class=\"factoid_title_container","\u003Cdiv id=\"factoid_","\u003Cdiv id=\"factoid_header","\u003Cdiv id=\"factoid_content","\u003Cdiv id=\"factoid_source","\u003Cimg src=\"https:\u002F\u002Foctober.com.au\u002Fsoft\u002Freload.png\"","\u003Cdiv class=\"factoid_footer_container","\u003Cdiv class=\"factoid_footer_innerleft","\u003Cdiv class=\"factoid_footer_innerright"]