[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fVdZ-hnn55rD34PuDA7ixdmsDnNKfXYAR6zND4wfJZrU":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":135,"fingerprints":186},"access-keys","Access Keys","1.0","Aaron Butacov","https:\u002F\u002Fprofiles.wordpress.org\u002Faaron-harun\u002F","\u003Cp>The WordPress Access Keys Plugin allows you to add access keys to pages and categories to improve accessibility of your WordPress website. This works with any page or category list that is called with \u003Ccode>wp_list_pages\u003C\u002Fcode> and \u003Ccode>wp_list_categories\u003C\u002Fcode> respectively.\u003C\u002Fp>\n\u003Cp>It is simple to use this this plugin. On the Admin panel it lists pages and categories with a current access key, and in a separate list it lists the pages and categories without access keys. Just add an access key just type a number or letter in a text box and click the save button. The categories or posts will then move to the top list, and you will feel great about be kind to your users.\u003C\u002Fp>\n","Add Access Keys to Category and Page navigation menus to make your website far more accessible.",70,8299,0,"2008-04-06T01:53:00.000Z","2.5","2.1","",[4,19,20,21,22],"accessibility","admin","categories","pages","http:\u002F\u002Fanthologyoi.com\u002Fwordpress\u002Fplugins\u002Fwordpress-access-keys.html","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Faccess-keys.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},"aaron-harun",6,1100,30,84,"2026-04-04T17:25:20.608Z",[37,52,70,95,116],{"slug":38,"name":39,"version":40,"author":7,"author_profile":8,"description":41,"short_description":42,"active_installs":11,"downloaded":43,"rating":44,"num_ratings":45,"last_updated":46,"tested_up_to":47,"requires_at_least":48,"requires_php":17,"tags":49,"homepage":50,"download_link":51,"security_score":25,"vuln_count":13,"unpatched_count":13,"last_vuln_date":26,"fetched_at":27},"wordpress-nav-menus-access-keys","Access Keys for WP Navigation Menus","1.6","\u003Cp>The WordPress Access Keys Plugin allows you to add access keys to your navigation menus to improve accessibility of your WordPress website.\u003C\u002Fp>\n\u003Col>\n\u003Cli>Activate\u003C\u002Fli>\n\u003Cli>Add access keys to menu items under the Appearance > menu panel.\u003C\u002Fli>\n\u003Cli>???\u003C\u002Fli>\n\u003Cli>Profit from having an accessible site.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>\u003Cem>For \u003Ccode>wp_list_pages\u003C\u002Fcode> and \u003Ccode>wp_list_categories\u003C\u002Fcode> support\u003C\u002Fem>\u003Cbr \u002F>\nDownload the older \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fextend\u002Fplugins\u002Faccess-keys\u002F\" rel=\"ugc\">Access Keys plugin\u003C\u002Fa>. The older version also allow you to add access keys to pages and categories. This works with any page or category list that is called with \u003Ccode>wp_list_pages\u003C\u002Fcode> and \u003Ccode>wp_list_categories\u003C\u002Fcode> respectively.\u003C\u002Fp>\n\u003Cp>It is simple to use this this plugin. On the Admin panel it lists pages and categories with a current access key, and in a separate list it lists the pages and categories without access keys. Just add an access key just type a number or letter in a text box and click the save button. The categories or posts will then move to the top list, and you will feel great about be kind to your users.\u003C\u002Fp>\n","Add Access Keys to WordPress 3.6 Nav menus to make your website far more accessible.",4936,100,2,"2013-10-18T19:31:00.000Z","3.6.1","3.3",[4,19,20,21,22],"http:\u002F\u002Faahacreative.com\u002Four-projects\u002Fwordpress-nav-menu-access-keys\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwordpress-nav-menus-access-keys.1.6.zip",{"slug":53,"name":54,"version":55,"author":56,"author_profile":57,"description":58,"short_description":59,"active_installs":60,"downloaded":61,"rating":13,"num_ratings":13,"last_updated":62,"tested_up_to":63,"requires_at_least":64,"requires_php":17,"tags":65,"homepage":68,"download_link":69,"security_score":25,"vuln_count":13,"unpatched_count":13,"last_vuln_date":26,"fetched_at":27},"category-page-extender","Category Page Extender","1.0.3","grpsmglr00","https:\u002F\u002Fprofiles.wordpress.org\u002Fgrpsmglr00\u002F","\u003Cp>This plugin builds on the Category Page plugin making it possible to automatically insert posts into pages and subpages based on categories.  You must have a current version of \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fextend\u002Fplugins\u002Fpage2cat\u002F\" rel=\"ugc\">Category Page\u003C\u002Fa> installed in order to function.\u003Cbr \u002F>\n.\u003Cbr \u002F>\nVisit plugin page \u003Ca href=\"http:\u002F\u002Fcategorypageextender.wordpress.com\u002F\" rel=\"nofollow ugc\">here\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch3>Usage\u003C\u002Fh3>\n\u003Cp>To view complete instructions \u003Ca href=\"http:\u002F\u002Fcategorypageextender.wordpress.com\" rel=\"nofollow ugc\">read here\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>Open up page.php in your template folder (you may also set up a seperate a Page Template)\u003C\u002Fp>\n\u003Cp>For the most basic setup, insert the following below the loop statement in the page.php file:\u003C\u002Fp>\n\u003Cpre>\u003C?php if( function_exists(page2cat_pages)){ page2cat_pages($post->ID);} ?>\u003C\u002Fpre>\n\u003C\u002Fp>\n\u003Cp>I recommend you wrap the function in your standard post class.  For example:\u003C\u002Fp>\n\u003Cpre>\u003Cdiv class=\"post\">\n\u003C?php if( function_exists(page2cat_pages)){ page2cat_pages($post->ID);} ?>\n\u003C\u002Fdiv>\u003C\u002Fpre>\n\u003C\u002Fp>\n\u003Cp>Plugin Options\u003C\u002Fp>\n\u003Cpre>\u003Ccode>\u003C?php if( function_exists(page2cat_pages)){ page2cat_pages($post->ID, posts per page, number of pages);} ?>\u003Cbr \u002F>\u003Cbr \u002F>\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Posts per page: (default = 10) set to 0 to show all\u003Cbr \u002F>\nThis sets the number of posts to show at one time on the page.\u003C\u002Fp>\n\u003Cp>Number of pages: (default = 15) set to 0 to show all\u003Cbr \u002F>\nThis tells how many page numbers to show at a time on the page navigation bar.\u003C\u002Fp>\n\u003Cp>Example of Category Page Extender with variables:\u003C\u002Fp>\n\u003Cpre>\u003C?php if( function_exists(page2cat_pages)){ page2cat_pages($post->ID, 5, 10);} ?>\u003C\u002Fpre>\n\u003Cp>This will list 5 posts and up to 10 page numbers at a time on the page navigation bar.\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"http:\u002F\u002Fcategorypageextender.wordpress.com\u002F\" rel=\"nofollow ugc\">Plugin Homepage\u003C\u002Fa>\u003C\u002Fp>\n","Inserts posts into pages corresponding to category.  Add on plugin for Category Page by pixline.net. Requieres an active installation of Category Page &hellip;",40,10621,"2009-12-31T13:44:00.000Z","2.8.4","2.2",[20,21,66,67,22],"category","formatting","http:\u002F\u002Fcategorypageextender.wordpress.com\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fcategory-page-extender.1.0.3.zip",{"slug":71,"name":72,"version":73,"author":74,"author_profile":75,"description":76,"short_description":77,"active_installs":78,"downloaded":79,"rating":80,"num_ratings":81,"last_updated":82,"tested_up_to":83,"requires_at_least":84,"requires_php":85,"tags":86,"homepage":90,"download_link":91,"security_score":92,"vuln_count":93,"unpatched_count":13,"last_vuln_date":94,"fetched_at":27},"wp-nested-pages","Nested Pages","3.2.13","Kyle Phillips","https:\u002F\u002Fprofiles.wordpress.org\u002Fkylephillips\u002F","\u003Cp>\u003Cstrong>Why use Nested Pages?\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Provides a simple & intuitive drag and drop interface for managing your page structure and post ordering\u003C\u002Fli>\n\u003Cli>Enhanced quick edit functionality\u003C\u002Fli>\n\u003Cli>Adds an editable, sortable tree view of your site’s page structure\u003C\u002Fli>\n\u003Cli>Automatically generates a native WordPress menu that matches your page structure\u003C\u002Fli>\n\u003Cli>A way to quickly add multiple pages & posts (ideal for development)\u003C\u002Fli>\n\u003Cli>Works with any post type\u003C\u002Fli>\n\u003Cli>Works on touch-enabled devices\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>For more information visit \u003Ca href=\"http:\u002F\u002Fnestedpages.com\" rel=\"nofollow ugc\">nestedpages.com\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>For development inquiries or to submit security notices, please visit the \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fkylephillips\u002Fwp-nested-pages\" rel=\"nofollow ugc\">Github repository\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Important: Nested Pages requires WordPress version 3.8 or higher, and PHP version 5.4 or higher.\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Languages:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Danish (Thomas Blomberg)\u003C\u002Fli>\n\u003Cli>Dutch (Arno Vije)\u003C\u002Fli>\n\u003Cli>English\u003C\u002Fli>\n\u003Cli>Finnish (Roni Laukkarinen)\u003C\u002Fli>\n\u003Cli>French (Nico Mollet)\u003C\u002Fli>\n\u003Cli>German\u002FSwiss German (Bartosz Podlewski)\u003C\u002Fli>\n\u003Cli>Italian (Francesco Canovi)\u003C\u002Fli>\n\u003Cli>Portuguese (Luis Martins)\u003C\u002Fli>\n\u003Cli>Russian (Алексей Катаев)\u003C\u002Fli>\n\u003Cli>Spanish (Raúl Martínez)\u003C\u002Fli>\n\u003Cli>Swedish (Marcus Forsberg)\u003C\u002Fli>\n\u003Cli>Turkish (Yuksel Beyti)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>More Information\u003C\u002Fh3>\n\u003Ch4>Generated Menu\u003C\u002Fh4>\n\u003Cp>The default menu generated automatically is named “Nested Pages”. You may rename the menu under Appearance > Menus, or under the Nested Pages settings.\u003C\u002Fp>\n\u003Ch4>Toggling the Page Tree\u003C\u002Fh4>\n\u003Cp>To toggle the child pages in and out of view, click the arrow to the left of a parent page. To quickly expand and collapse all pages, click the button in the upper right corner of the Nested Pages Screen.\u003C\u002Fp>\n\u003Ch4>Theme Use\u003C\u002Fh4>\n\u003Cp>To order by nested pages ordering in your theme, use the \u003Ccode>menu_order\u003C\u002Fcode> order option in your queries.\u003C\u002Fp>\n\u003Ch4>Hiding Pages from the Tree View\u003C\u002Fh4>\n\u003Cp>To hide a page from the tree view, open the quick edit form, select the option to “Hide in Nested Pages” and click Update to save the change.\u003C\u002Fp>\n\u003Cp>To toggle the page back into view, click the “Show Hidden Pages” link at the top of the screen. The hidden pages are now visible, and can be re-edited to be shown.\u003C\u002Fp>\n\u003Ch4>Sorting Pages\u003C\u002Fh4>\n\u003Cp>To sort pages, hover over the page row. A menu icon (three lines) will appear. Click (or tap) this icon and drag to reorder within the menu. To drag a page underneath another, drag the page to the right and underneath the target parent. Visual indication is provided with an indentation. The drag and drop functionality works similarly to WordPress menus.\u003C\u002Fp>\n\u003Ch4>Menu Sync\u003C\u002Fh4>\n\u003Cp>After installing Nested Pages, a new menu will be available with the name \u003Ccode>Nested Pages\u003C\u002Fcode>. By default, menu syncing is enabled. To disable the sync, uncheck “Sync Menu” at the top of the Nested Pages screen. Recheck the box to enable it again and to run the sync.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Saving Performance:\u003C\u002Fstrong> If your site has a very large number of pages, disabling page sync may help speed up the save time when using Nested Pages.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Editing the generated menu:\u003C\u002Fstrong> Any manual changes made to the menu outside of the Nested Pages interface will be overwritten after the synchronization runs.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Hiding Pages in the Menu:\u003C\u002Fstrong> To hide a page from the Nested Pages menu, click “Quick Edit” on it’s row, select “Hide in Nav Menu”, and click “update”. If menu sync is disabled, enable it now to sync the setting. Hidden pages are marked “(Hidden)”. If a page with child pages is hidden from the menu, all of it’s child pages will also be hidden.\u003C\u002Fp>\n\u003Ch4>WPML Compatibility\u003C\u002Fh4>\n\u003Cp>As of version 2.0.1, some features of Nested Pages are compatible with WPML. There are some important exceptions to take note of before upgrading to version 2 if WPML is installed, or if installing WPML on an existing Nested Pages enabled site.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>WPML and menu support:\u003C\u002Fstrong> Certain features within Nested Pages are disabled if WPML is installed and enabled. This is due to the complexity of menu synchronization across languages. While automatic menu sync remains available for the site’s primary language, additional languages must be synchronized using WPML’s menu synchronization methods. If menu sync is enabled within Nested Pages, a “Sync WPML Menus” link is available on non-primary language screens for convenience.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Custom Links:\u003C\u002Fstrong> Custom links within Nested Pages are disabled on installs with WPML. Custom links may be added through the traditional Appearance > Menus interface. This ensures that WPML menus synchronize successfully across languages.\u003C\u002Fp>\n\u003Ch4>Filters\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Ccode>the_title($title, $post_id, $view)\u003C\u002Fcode> – Standard title filter. Applied to the title displayed in the nested interface. A third paramater, $view, is passed to check if the current title is being displayed in the nested view.\u003C\u002Fli>\n\u003Cli>\u003Ccode>nestedpages_thumbnail($image, $post)\u003C\u002Fcode> – Customize the thumbnail for each page\u002Fpost. Note: Thumbnails must be enabled for the post type.\u003C\u002Fli>\n\u003Cli>\u003Ccode>nestedpages_thumbnail_fallback($image, $post)\u003C\u002Fcode> – Customize the thumbnail fallback for each page\u002Fpost (if the post does not have a featured image). Note: Thumbnails must be enabled for the post type.\u003C\u002Fli>\n\u003Cli>\u003Ccode>nestedpages_edit_link($link, $post)\u003C\u002Fcode> – Customize the “edit” link for each page\u002Fpost in the nested interface.\u003C\u002Fli>\n\u003Cli>\u003Ccode>nestedpages_edit_link_text($text, $post)\u003C\u002Fcode> – Customize the “edit” link text for each page\u002Fpost in the nested interface.\u003C\u002Fli>\n\u003Cli>\u003Ccode>nestedpages_view_link($link, $post)\u003C\u002Fcode> – Customize the “view” button link for each page\u002Fpost in the nested interface.\u003C\u002Fli>\n\u003Cli>\u003Ccode>nestedpages_view_link_text($text, $post)\u003C\u002Fcode> – Customize the “view” button text for each page\u002Fpost in the nested interface.\u003C\u002Fli>\n\u003C\u002Ful>\n","Nested Pages provides a drag and drop interface for managing pages & posts in the WordPress admin, while maintaining quick edit functionality.",90000,2231824,94,125,"2025-02-11T22:05:00.000Z","6.7.5","3.8","5.4",[20,87,88,22,89],"nested","page-tree","tree-view","http:\u002F\u002Fnestedpages.com","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwp-nested-pages.3.2.13.zip",86,10,"2025-03-02 00:00:00",{"slug":96,"name":97,"version":98,"author":99,"author_profile":100,"description":101,"short_description":102,"active_installs":103,"downloaded":104,"rating":105,"num_ratings":106,"last_updated":107,"tested_up_to":108,"requires_at_least":109,"requires_php":110,"tags":111,"homepage":114,"download_link":115,"security_score":44,"vuln_count":13,"unpatched_count":13,"last_vuln_date":26,"fetched_at":27},"post-tags-and-categories-for-pages","Post Tags and Categories for Pages","1.4.3","curtismchale","https:\u002F\u002Fprofiles.wordpress.org\u002Fcurtismchale\u002F","\u003Cp>Post Tags and Categories for Pages adds the stock WordPress categories\u003Cbr \u002F>\nfor all of your pages. Pages will show up in the stock WordPress archive\u003Cbr \u002F>\nqueries.\u003C\u002Fp>\n\u003Cp>This WILL NOT add any display of categories or tags to your template files. There are simply to\u003Cbr \u002F>\nmany ways that things could be displayed in a theme so we don’t do it. If you need to add this\u003Cbr \u002F>\nthen look at using WordPress functions like \u003Ca href=\"https:\u002F\u002Fcodex.wordpress.org\u002FFunction_Reference\u002Fthe_category\" rel=\"nofollow ugc\">the_category()\u003C\u002Fa>\u003Cbr \u002F>\nand other category or tag function supplied in WordPress.\u003C\u002Fp>\n","Adds the built in WordPress categories and tags to your pages.",20000,242809,96,23,"2026-01-07T18:41:00.000Z","6.9.4","6.0","8.0",[21,22,112,113],"tags","wp","http:\u002F\u002Fwpthemetutorial.com\u002Fplugins\u002Fpost-tags-and-categories-for-pages\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fpost-tags-and-categories-for-pages.1.4.3.zip",{"slug":117,"name":118,"version":119,"author":120,"author_profile":121,"description":122,"short_description":123,"active_installs":124,"downloaded":125,"rating":11,"num_ratings":45,"last_updated":126,"tested_up_to":108,"requires_at_least":127,"requires_php":17,"tags":128,"homepage":131,"download_link":132,"security_score":133,"vuln_count":45,"unpatched_count":13,"last_vuln_date":134,"fetched_at":27},"essential-widgets","Essential Widgets","3.0.1","Catch Themes","https:\u002F\u002Fprofiles.wordpress.org\u002Fcatchthemes\u002F","\u003Cp>Essential Widgets – a free WordPress plugin for widgets allows you to create and add interesting widgets on your website to make it more attractive and welcoming. Essential Widgets stays true to the essence of its name and offers exactly what you expect from a widgets plugin—all the “essential” widgets for your website. The plugin has been crafted beautifully to draw the extra attention to the important parts of your website. Essential Widgets provides you with the ability to have more control over the widgets with the various customization options. This free WordPress plugin for widgets allows you to create 7 different interesting widgets on your website. All the 7 widgets provided to you comes with so many customization options and are very easy to use. So, with Essential Widgets plugin, customize the interesting widgets your way and display them anywhere you want on your website to make it more dynamic.\u003C\u002Fp>\n\u003Col>\n\u003Cli>\n\u003Cp>EW: Archives\u003Cbr \u002F>\nThe Archives widget comes with various customization options. Choose a title, limit the number of posts, select the archive type, post type, order and more with the Archives widget.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>EW: Authors\u003Cbr \u002F>\nDisplaying the author’s information is kind of a must-have feature if your website has multiple authors. Our new WordPress widgets plugin allows you to add Authors widget. With this widget, you can show the list of the authors on your website, the number of posts, select feed type, and more.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>EW: Categories\u003Cbr \u002F>\nEssential Widgets Pro supports Categories widget. The widget provides you with various customizable options such as the title of the widget, taxonomy option, order option, number of categories to show, display as a list or none, number of posts to display, sort by option, select feed type ton display and display as text or image.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>EW: Menus\u003Cbr \u002F>\nBored with the same default menu? Our new WordPress plugin for widgets, Essential Widgets Pro supports Menus widget. With the Menus widget filled with various customization options, you can display your menus elegantly anywhere you want on your website.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>EW: Pages\u003Cbr \u002F>\nDisplay a list of pages with the Pages widget. With various customization options being provided to you, you can showcase the pages that are more important on your website wherever you want with Essential Widgets Pro.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>EW: Posts\u003Cbr \u002F>\nEssential Widgets Pro supports Posts widget. With the widget and its customizable options, you can easily display a list of posts on your website. You can add a title, select the post type, number of items to display, order, sort by, and more.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>EW: Tags\u003Cbr \u002F>\nAnd last, but definitely not the least, the Tags widget. You can display a list of tags as cloud or list, select the order of the tags, sort by option and the number of items to be displayed. The widget also provides you with more customization options including the unit, separator, search, text type, and more.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>Translations\u003C\u002Fh3>\n\u003Cp>To translate the plugin, use translate.wordpress.org (GlotPress). You only need your WordPress.org account to join the collaborative translation project.\u003C\u002Fp>\n\u003Cp>You can translate Essential Widgets on \u003Ca href=\"https:\u002F\u002Ftranslate.wordpress.org\u002Fprojects\u002Fwp-plugins\u002Fessential-widgets\u002F\" rel=\"nofollow ugc\">translate.wordpress.org\u003C\u002Fa>.\u003C\u002Fp>\n","Essential Widgets is a WordPress plugin for widgets that allows you to create and add amazing widgets with high customization option",10000,488631,"2026-01-26T17:59:00.000Z","5.9",[21,22,129,112,130],"posts","widgets","https:\u002F\u002Fcatchplugins.com\u002Fplugins\u002Fessential-widgets\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fessential-widgets.3.0.1.zip",98,"2026-02-04 18:41:50",{"attackSurface":136,"codeSignals":157,"taintFlows":174,"riskAssessment":175,"analyzedAt":185},{"hooks":137,"ajaxHandlers":153,"restRoutes":154,"shortcodes":155,"cronEvents":156,"entryPointCount":13,"unprotectedCount":13},[138,144,148],{"type":139,"name":140,"callback":141,"file":142,"line":143},"filter","wp_list_categories","access_keys_cats","access_keys.php",24,{"type":139,"name":145,"callback":146,"file":142,"line":147},"wp_list_pages","access_keys_pages",33,{"type":149,"name":150,"callback":151,"file":142,"line":152},"action","admin_menu","access_keys_menu",68,[],[],[],[],{"dangerousFunctions":158,"sqlUsage":159,"outputEscaping":161,"fileOperations":13,"externalRequests":13,"nonceChecks":13,"capabilityChecks":13,"bundledLibraries":173},[],{"prepared":13,"raw":13,"locations":160},[],{"escaped":13,"rawEcho":162,"locations":163},4,[164,167,169,171],{"file":142,"line":165,"context":166},132,"raw output",{"file":142,"line":168,"context":166},144,{"file":142,"line":170,"context":166},164,{"file":142,"line":172,"context":166},176,[],[],{"summary":176,"deductions":177},"The \"access-keys\" plugin v1.0 exhibits a strong security posture based on the provided static analysis. The absence of any identified AJAX handlers, REST API routes, shortcodes, or cron events significantly limits the plugin's attack surface. Furthermore, the code signals show no dangerous functions, no raw SQL queries (all use prepared statements), no file operations, and no external HTTP requests. This suggests a well-contained and defensively programmed plugin.\n\nHowever, the analysis does reveal a critical concern: 100% of output is not properly escaped. This indicates a high risk of Cross-Site Scripting (XSS) vulnerabilities, as user-controlled data that is outputted by the plugin may not be sanitized, allowing attackers to inject malicious scripts. The lack of any identified capability checks or nonce checks on potential entry points further exacerbates this risk, as there are no authorization or integrity checks implemented.\n\nThe vulnerability history is clean, with no recorded CVEs. This is a positive indicator of the plugin's past security and the developers' diligence. However, the lack of historical vulnerabilities should not overshadow the current, significant risk posed by the unescaped output. The plugin has strengths in its limited attack surface and secure SQL handling, but the unescaped output presents a severe weakness that requires immediate attention.",[178,180,183],{"reason":179,"points":31},"100% of output not properly escaped",{"reason":181,"points":182},"No nonce checks on entry points",5,{"reason":184,"points":182},"No capability checks on entry points","2026-03-16T21:39:28.536Z",{"wat":187,"direct":192},{"assetPaths":188,"generatorPatterns":189,"scriptPaths":190,"versionParams":191},[],[],[],[],{"cssClasses":193,"htmlComments":196,"htmlAttributes":197,"restEndpoints":200,"jsGlobals":201,"shortcodeOutput":202},[194,195],"cat-item","page_item",[],[198,199],"name=\"access_keys[page]","name=\"access_keys[cat]",[],[],[]]