[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fU7EGcQgtog3W5R1ZEP1CgzScFKZI2DRD11x-4dTtBiU":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":13,"last_updated":14,"tested_up_to":15,"requires_at_least":16,"requires_php":17,"tags":18,"homepage":23,"download_link":24,"security_score":25,"vuln_count":13,"unpatched_count":13,"last_vuln_date":26,"fetched_at":27,"vulnerabilities":28,"developer":29,"crawl_stats":26,"alternatives":36,"analysis":137,"fingerprints":281},"imperfect-quotes","Imperfect Quotes","0.9.0","Matt Parrott","https:\u002F\u002Fprofiles.wordpress.org\u002Fmattparrott\u002F","\u003Cp>Use the intuitive and powerful rich text interface to add and edit quotes,\u003Cbr \u002F>\nusing the ‘featured image’ functionality to add a thumbnail image. Then, use\u003Cbr \u002F>\neither the supplied widget, a simple shortcode, or a straightforward function\u003Cbr \u002F>\nin your theme to add either a specific quote or a random quote to your site.\u003C\u002Fp>\n\u003Cp>This plugin is a fork of Perfect Quotes. I forked it because it’s an excellent\u003Cbr \u002F>\nplugin. In some ways, it’s more powerful and flexible than this one. I highly\u003Cbr \u002F>\nrecommend it if this plugin is too simple for you and you don’t need either\u003Cbr \u002F>\nthe thumbnail feature or the rich text editing option.\u003C\u002Fp>\n\u003Ch4>Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Widget based to easily place your quotes where you like.\u003C\u002Fli>\n\u003Cli>A custom shortcode is included if you want to place your quotes within a post or a page.\u003C\u002Fli>\n\u003Cli>Based on Custom Post types with its own admin menu.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Support languages\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>PHP\u003C\u002Fli>\n\u003Cli>CSS\u003C\u002Fli>\n\u003Cli>jQuery\u002Fjavascript\u003C\u002Fli>\n\u003C\u002Ful>\n","Use the intuitive and powerful rich text interface to add and edit quotes,",10,11237,0,"2012-08-17T15:51:00.000Z","3.3.2","3.0","",[19,4,20,21,22],"imperfect","quote","quotes","widget","http:\u002F\u002Fwww.swarmstrategies.com\u002Fimperfect-quotes","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fimperfect-quotes.0.9.3.zip",85,null,"2026-03-15T15:16:48.613Z",[],{"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},"mattparrott",2,20,30,84,"2026-04-04T16:00:38.275Z",[37,57,80,100,117],{"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":17,"tags":52,"homepage":55,"download_link":56,"security_score":25,"vuln_count":13,"unpatched_count":13,"last_vuln_date":26,"fetched_at":27},"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,6,"2016-09-29T02:57:00.000Z","4.6.30","2.8",[53,54,22],"random-quotes","shortcodes","http:\u002F\u002Ftrepmal.com\u002Fplugins\u002Feasy-random-quotes\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Feasy-random-quotes.1.8.zip",{"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":48,"last_updated":68,"tested_up_to":69,"requires_at_least":70,"requires_php":71,"tags":72,"homepage":17,"download_link":76,"security_score":77,"vuln_count":78,"unpatched_count":31,"last_vuln_date":79,"fetched_at":27},"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.",300,8991,74,"2026-02-17T18:38:00.000Z","6.9.4","6.0","7.4",[73,74,21,75,22],"blocks","gutenberg","random","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fxv-random-quotes.2.7.0.zip",54,4,"2025-04-03 00:00:00",{"slug":81,"name":82,"version":83,"author":84,"author_profile":85,"description":86,"short_description":87,"active_installs":88,"downloaded":89,"rating":90,"num_ratings":31,"last_updated":91,"tested_up_to":92,"requires_at_least":93,"requires_php":17,"tags":94,"homepage":98,"download_link":99,"security_score":25,"vuln_count":13,"unpatched_count":13,"last_vuln_date":26,"fetched_at":27},"quotes-shortcode-and-widget","Quotes Shortcode and Widget","1.14","OTWthemes","https:\u002F\u002Fprofiles.wordpress.org\u002Fotwthemes\u002F","\u003Cp>It is easy to create all different kinds of Quotes for your WordPress site. Insert Quotes anywhere in your site – page\u002Fpost editor, sidebars, template files. No coding is required. It is all done in a nice and easy interface.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Quotes Options\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Quote Text \u003C\u002Fli>\n\u003Cli>Border\u003C\u002Fli>\n\u003Cli>Border Style \u003C\u002Fli>\n\u003Cli>Background Color\u003C\u002Fli>\n\u003Cli>Background Pattern\u003C\u002Fli>\n\u003Cli>Text Color\u003C\u002Fli>\n\u003Cli>Custom CSS Class\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Insert Quotes Anywhere in your site\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Basically Quotes can be inserted anywhere in your site\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Page\u002Fpost WYSIWYG editor by using the buttion in the editor\u003C\u002Fli>\n\u003Cli>In sidebars by using the OTW Shortcode Widget\u003C\u002Fli>\n\u003Cli>In template files by using the Quote’s shortcode and WordPress do_shortcode function\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Custom styling\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>If you need to further style an Quotes here are your options:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Each Quote shortcode has it’s unique CSS class that can be used to style all Quotes.\u003C\u002Fli>\n\u003Cli>Create a new class for each instance of an Quotes shortcode in its interface so you can style it individually.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Localization\u002FInternationalization\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>This plugin comes Localization\u002FInternationalization ready. It is following WordPress I18n standards.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Full version of the plugin\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cblockquote>\n\u003Cp>Upgrade to the \u003Cstrong>Pro version\u003C\u002Fstrong> of this plugin – the fastes way to build your WordPress based site including regular updates and premium support:\u003Cbr \u002F>\n  \u003Ca href=\"https:\u002F\u002F1.envato.market\u002Fc\u002F1246358\u002F275988\u002F4415?subId1=cm&subId2=2020&subId3=https%3A%2F%2Fcodecanyon.net%2Fitem%2Fcontent-manager-for-wordpress%2F7431829&u=https%3A%2F%2Fcodecanyon.net%2Fitem%2Fcontent-manager-for-wordpress%2F7431829\" rel=\"nofollow ugc\">Content Manager\u003C\u002Fa> | \u003Ca href=\"http:\u002F\u002Fotwthemes.com\u002Fdemos\u002F1ts\u002F?item=Content%20Manager&utm_source=wp.org&utm_medium=page&utm_content=upgrade&utm_campaign=cml\" rel=\"nofollow ugc\">Demo site\u003C\u002Fa>\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Cul>\n\u003Cli>Custom Responsive Layouts – Build in Seconds\u003C\u002Fli>\n\u003Cli>Front-end Editor – Edit your layouts and content in the front-end of your site\u003C\u002Fli>\n\u003Cli>40+ Shortcodes with add\u002Fedit Interface, Custom and Imported Shortcodes\u003C\u002Fli>\n\u003Cli>Insert Shortcodes Anywhere – Layouts, Page Editor, Sidebars, Template files\u003C\u002Fli>\n\u003Cli>Insert Sidebars Anywhere – Layouts, Page Editor, Template files\u003C\u002Fli>\n\u003Cli>WordPress Widgets Anywhere – Layouts, Page Editor, Template files\u003C\u002Fli>\n\u003Cli>Content Sidebars\u003C\u002Fli>\n\u003Cli>Support and Updates\u003C\u002Fli>\n\u003Cli>Zero Coding Required\u003C\u002Fli>\n\u003C\u002Ful>\n","Create Quotes. Nice and easy interface. Insert anywhere in your site - page\u002Fpost editor, sidebars, template files.",200,14566,80,"2022-04-01T04:13:00.000Z","5.9.13","3.6",[95,20,21,96,97],"button","shortcode","widgets","http:\u002F\u002FOTWthemes.com","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fquotes-shortcode-and-widget.zip",{"slug":101,"name":102,"version":103,"author":104,"author_profile":105,"description":106,"short_description":107,"active_installs":108,"downloaded":109,"rating":108,"num_ratings":31,"last_updated":110,"tested_up_to":111,"requires_at_least":60,"requires_php":17,"tags":112,"homepage":115,"download_link":116,"security_score":25,"vuln_count":13,"unpatched_count":13,"last_vuln_date":26,"fetched_at":27},"quote-of-the-day-and-random-quote","Quote of the Day and Random Quote","1.2","dailyverses","https:\u002F\u002Fprofiles.wordpress.org\u002Fdailyverses\u002F","\u003Cp>This plugins shows a Quote of the Day, or a Random Quote.\u003C\u002Fp>\n\u003Cp>It can be used as a widget, so it’s easy to install. After installing the plugin you will have two widgets: ‘Quote of the Day’ and ‘Random Quote’.\u003C\u002Fp>\n\u003Cp>You can also use the following tags: [quoteoftheday] and [randomquote].\u003C\u002Fp>\n\u003Ch3>A brief Markdown Example\u003C\u002Fh3>\n","This plugins shows a Quote of the Day, or a Random Quote.",100,10389,"2018-09-08T07:56:00.000Z","4.8.28",[113,114,20,21,22],"daily","quotations","http:\u002F\u002Fwordpress.org\u002Fplugins\u002Fquote-of-the-day-and-random-quote\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fquote-of-the-day-and-random-quote.zip",{"slug":118,"name":119,"version":120,"author":121,"author_profile":122,"description":123,"short_description":124,"active_installs":108,"downloaded":125,"rating":90,"num_ratings":126,"last_updated":127,"tested_up_to":15,"requires_at_least":128,"requires_php":17,"tags":129,"homepage":133,"download_link":134,"security_score":135,"vuln_count":126,"unpatched_count":126,"last_vuln_date":136,"fetched_at":27},"xmasb-quotes","XmasB Quotes","1.6.1","XmasB","https:\u002F\u002Fprofiles.wordpress.org\u002Fxmasb\u002F","\u003Cp>XmasB Quotes lets you add and show randow quotes to your wordpress blog with ease. It uses the db to store quotes.\u003Cbr \u002F>\nYou can specify an image for each quote, deafult image for quotes, or disable images.\u003Cbr \u002F>\nNow with the option to use quotes as links!\u003C\u002Fp>\n\u003Cp>Please rate this plugin if you like it!\u003C\u002Fp>\n\u003Cp>For support and questions please visit \u003Ca href=\"http:\u002F\u002Fxmasb.com\u002Fxmasbquotes\" rel=\"nofollow ugc\">the plugin page\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>XmasB Quotes is available in the following languages:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>English (base language – feel free to make suggestions if you want\u003C\u002Fli>\n\u003Cli>Belarusian – by \u003Ca href=\"http:\u002F\u002Fwww.fatcow.com\" rel=\"nofollow ugc\">Fat Cow\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Dutch – by Rene at \u003Ca href=\"http:\u002F\u002Fwpwebshop.com\u002Fpremium-wordpress-plugins\u002F\" rel=\"nofollow ugc\">WordPress Webshop\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>French – by Farida at \u003Ca href=\"http:\u002F\u002Fwww.traducteurs.com\u002F\" rel=\"nofollow ugc\">Traducteurs.com\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>German – by \u003Ca href=\"http:\u002F\u002Fwww.alariel.de\u002Fblog\u002F\" rel=\"nofollow ugc\">Alariel\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Italian – by \u003Ca href=\"http:\u002F\u002Fgidibao.net\u002F\" rel=\"nofollow ugc\">gidibao\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Norwegian – by \u003Ca href=\"http:\u002F\u002Fzhayena.net\u002F\" rel=\"nofollow ugc\">Kristin K. Wangen\u003C\u002Fa> \u002F \u003Ca href=\"http:\u002F\u002Fxmasb.com\" rel=\"nofollow ugc\">Yngve Thoresen\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Russian – by Flector at \u003Ca href=\"http:\u002F\u002Fwww.wordpressplugins.ru\u002F\" rel=\"nofollow ugc\">WordPressPlugins.ru\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Spanish – by \u003Ca href=\"http:\u002F\u002Fwww.elquintosuyo.com\u002F\" rel=\"nofollow ugc\">Carlos\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Swedish – by \u003Ca href=\"http:\u002F\u002Frabatt.se\u002F\" rel=\"nofollow ugc\">Rabatt\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Support\u003C\u002Fh3>\n\u003Cp>For support and questions please visit \u003Ca href=\"http:\u002F\u002Fxmasb.com\u002Fxmasbquotes\" rel=\"nofollow ugc\">the plugin page\u003C\u002Fa>\u003C\u002Fp>\n","Add random quotes with image to your Wordpress blog with this widget.",21054,1,"2012-01-03T07:45:00.000Z","2.0.2",[130,21,131,22,132],"image","sidebar","xmasb","http:\u002F\u002Fxmasb.com\u002Fxmasbquotes","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fxmasb-quotes.1.6.1.zip",63,"2025-08-26 00:00:00",{"attackSurface":138,"codeSignals":209,"taintFlows":273,"riskAssessment":274,"analyzedAt":280},{"hooks":139,"ajaxHandlers":198,"restRoutes":199,"shortcodes":200,"cronEvents":208,"entryPointCount":31,"unprotectedCount":13},[140,146,149,153,156,161,165,169,173,177,180,182,184,186,187,188,189,190,191,192,193,195,196,197],{"type":141,"name":142,"callback":143,"file":144,"line":145},"action","init","imperfect_quotes_init","imperfect_quotes.php",19,{"type":141,"name":147,"callback":148,"file":144,"line":32},"admin_head","imperfect_quotes_admin_css",{"type":141,"name":150,"callback":151,"file":144,"line":152},"save_post","imperfect_quotes_save_postdata",50,{"type":141,"name":154,"callback":155,"file":144,"line":77},"manage_posts_custom_column","imperfect_quotes_columns",{"type":157,"name":158,"callback":159,"file":144,"line":160},"filter","manage_edit-imperfect-quotes_columns","imperfect_quotes_edit_columns",55,{"type":157,"name":162,"callback":163,"file":144,"line":164},"enter_title_here","imperfect_quotes_post_author",91,{"type":157,"name":166,"callback":167,"file":144,"line":168},"post_updated_messages","imperfect_quote_updated_messages",94,{"type":141,"name":170,"callback":171,"priority":11,"file":144,"line":172},"contextual_help","imperfect_quote_add_help_text",117,{"type":141,"name":174,"callback":175,"file":176,"line":31},"widgets_init","imperfect_quotes_register_widgets","includes\\widget.php",{"type":141,"name":150,"callback":178,"file":176,"line":179},"flush_widget_cache",18,{"type":141,"name":181,"callback":178,"file":176,"line":145},"deleted_post",{"type":141,"name":183,"callback":178,"file":176,"line":32},"switch_theme",{"type":141,"name":142,"callback":143,"file":185,"line":145},"trunk\\imperfect_quotes.php",{"type":141,"name":147,"callback":148,"file":185,"line":32},{"type":141,"name":150,"callback":151,"file":185,"line":152},{"type":141,"name":154,"callback":155,"file":185,"line":77},{"type":157,"name":158,"callback":159,"file":185,"line":160},{"type":157,"name":162,"callback":163,"file":185,"line":164},{"type":157,"name":166,"callback":167,"file":185,"line":168},{"type":141,"name":170,"callback":171,"priority":11,"file":185,"line":172},{"type":141,"name":174,"callback":175,"file":194,"line":31},"trunk\\includes\\widget.php",{"type":141,"name":150,"callback":178,"file":194,"line":179},{"type":141,"name":181,"callback":178,"file":194,"line":145},{"type":141,"name":183,"callback":178,"file":194,"line":32},[],[],[201,206],{"tag":202,"callback":203,"file":204,"line":205},"imperfect_quotes","imperfect_quotes_shortcodes","includes\\shortcodes.php",31,{"tag":202,"callback":203,"file":207,"line":205},"trunk\\includes\\shortcodes.php",[],{"dangerousFunctions":210,"sqlUsage":211,"outputEscaping":213,"fileOperations":13,"externalRequests":13,"nonceChecks":13,"capabilityChecks":78,"bundledLibraries":272},[],{"prepared":13,"raw":13,"locations":212},[],{"escaped":214,"rawEcho":215,"locations":216},16,42,[217,220,222,224,226,228,230,231,232,234,236,237,239,240,241,243,244,246,247,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271],{"file":144,"line":218,"context":219},75,"raw output",{"file":144,"line":221,"context":219},78,{"file":144,"line":223,"context":219},212,{"file":204,"line":225,"context":219},24,{"file":176,"line":227,"context":219},35,{"file":176,"line":229,"context":219},48,{"file":176,"line":152,"context":219},{"file":176,"line":160,"context":219},{"file":176,"line":233,"context":219},61,{"file":176,"line":235,"context":219},95,{"file":176,"line":235,"context":219},{"file":176,"line":238,"context":219},96,{"file":176,"line":238,"context":219},{"file":176,"line":238,"context":219},{"file":176,"line":242,"context":219},99,{"file":176,"line":108,"context":219},{"file":176,"line":245,"context":219},103,{"file":176,"line":245,"context":219},{"file":176,"line":248,"context":219},104,{"file":176,"line":248,"context":219},{"file":176,"line":248,"context":219},{"file":185,"line":218,"context":219},{"file":185,"line":221,"context":219},{"file":185,"line":223,"context":219},{"file":207,"line":225,"context":219},{"file":194,"line":227,"context":219},{"file":194,"line":229,"context":219},{"file":194,"line":152,"context":219},{"file":194,"line":160,"context":219},{"file":194,"line":233,"context":219},{"file":194,"line":235,"context":219},{"file":194,"line":235,"context":219},{"file":194,"line":238,"context":219},{"file":194,"line":238,"context":219},{"file":194,"line":238,"context":219},{"file":194,"line":242,"context":219},{"file":194,"line":108,"context":219},{"file":194,"line":245,"context":219},{"file":194,"line":245,"context":219},{"file":194,"line":248,"context":219},{"file":194,"line":248,"context":219},{"file":194,"line":248,"context":219},[],[],{"summary":275,"deductions":276},"The Imperfect Quotes plugin version 0.9.0 exhibits a generally good security posture based on the static analysis. There are no reported CVEs and no critical or high severity taint flows identified. The plugin also demonstrates sound practices by utilizing prepared statements for all SQL queries and performing capability checks on a number of functions, suggesting an awareness of secure coding principles. The limited attack surface, with no AJAX handlers or REST API routes, further contributes to its security. However, a significant concern lies in the output escaping, where only 28% of outputs are properly escaped. This indicates a potential risk of cross-site scripting (XSS) vulnerabilities, as unsanitized output can be rendered by the browser, allowing malicious scripts to be injected. While the plugin has no recorded vulnerability history, this doesn't guarantee future safety. The lack of proper output escaping is the primary weakness and requires immediate attention to mitigate potential XSS attacks.",[277],{"reason":278,"points":279},"Insufficient output escaping",8,"2026-03-17T00:18:47.412Z",{"wat":282,"direct":288},{"assetPaths":283,"generatorPatterns":285,"scriptPaths":286,"versionParams":287},[284],"\u002Fwp-content\u002Fplugins\u002Fimperfect-quotes\u002Fimages\u002Fimperfect-space-icon.png",[],[],[],{"cssClasses":289,"htmlComments":291,"htmlAttributes":292,"restEndpoints":293,"jsGlobals":294,"shortcodeOutput":295},[4,290],"imperfect-quotes-author",[],[],[],[],[296],"[imperfect_quotes id=\""]