[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fTITr268sgVecstKy-Y64z1yqW5I5Ud6Rl9wKHLu7xLc":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":39,"analysis":128,"fingerprints":237},"hierarchical-link-categories","Hierarchical Link Categories","2.0.1","Zack Katz","https:\u002F\u002Fprofiles.wordpress.org\u002Fkatzwebdesign\u002F","\u003Ch3>Finally, Choose Parent Categories for Link Categories\u003C\u002Fh3>\n\u003Cp>One of the problems with WordPress’ built-in blogroll\u002Fbookmark functionality is that you can’t choose to create nested categories (sub-categories) for the links. This is silly, and makes the functionality nearly useless.\u003C\u002Fp>\n\u003Ch4>Treat yourself to some nested blogroll categories\u003C\u002Fh4>\n\u003Cp>This plugin allows link categories to have parent categories (makes link categories “hierarchical”), saving you time and maybe even \u003Cem>saving the world\u003C\u002Fem>.\u003C\u002Fp>\n\u003Cp>The plugin also now includes a widget!\u003C\u002Fp>\n\u003Cblockquote>\n\u003Ch4>You may also be interested in:\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fextend\u002Fplugins\u002Frich-text-tags\u002F\" rel=\"ugc\">Rich Text Tags\u003C\u002Fa>\u003C\u002Fstrong> – Enable rich text editing of tags, categories, and taxonomies. Add value to your tag & category pages and improve your website’s SEO.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fblockquote>\n","Convert WordPress' link categories to be hierarchical with this simple plugin.",90,7605,60,2,"2012-11-13T17:16:00.000Z","3.5.2","3.1","",[20,21,22,23,24],"blogroll","bookmark","link","link-categories","links","http:\u002F\u002Fwww.seodenver.com\u002Fhierarchical-links\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fhierarchical-link-categories.zip",85,0,null,"2026-03-15T15:16:48.613Z",[],{"slug":33,"display_name":7,"profile_url":8,"plugin_count":34,"total_installs":35,"avg_security_score":27,"avg_patch_time_days":36,"trust_score":37,"computed_at":38},"katzwebdesign",23,14410,30,84,"2026-04-03T21:32:05.581Z",[40,60,79,96,111],{"slug":41,"name":42,"version":43,"author":44,"author_profile":45,"description":46,"short_description":47,"active_installs":48,"downloaded":49,"rating":28,"num_ratings":28,"last_updated":50,"tested_up_to":51,"requires_at_least":52,"requires_php":53,"tags":54,"homepage":57,"download_link":58,"security_score":59,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"blogroll-links","Blogroll Links","3.0.0","rajivpant","https:\u002F\u002Fprofiles.wordpress.org\u002Frajivpant\u002F","\u003Cp>Blogroll Links is a WordPress plugin that displays your site’s link bookmarks (formerly called “blogroll”) within posts and pages using a simple shortcode.\u003C\u002Fp>\n\u003Cp>For people who maintain their website or blog using the WordPress content management system, Blogroll Links uses WordPress’ built-in Links feature and presents links to friends’ pages, resources, and social networking profiles.\u003C\u002Fp>\n\u003Ch4>Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Display links by category using the category slug\u003C\u002Fli>\n\u003Cli>Customizable sorting (by name, URL, rating, or ID)\u003C\u002Fli>\n\u003Cli>Honors link visibility settings (show\u002Fhidden)\u003C\u002Fli>\n\u003Cli>Respects target window settings for each link\u003C\u002Fli>\n\u003Cli>Displays link descriptions and images if available\u003C\u002Fli>\n\u003Cli>Works with WordPress’ built-in Links Manager\u003C\u002Fli>\n\u003Cli>Supports XFN (XHTML Friends Network) relationship tags\u003C\u002Fli>\n\u003Cli>Full PHP 8+ compatibility\u003C\u002Fli>\n\u003Cli>Secure: Protected against SQL injection, XSS, and CSRF attacks\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Usage\u003C\u002Fh4>\n\u003Cp>Add this shortcode to any post or page:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[blogroll-links categoryslug=\"my-links\"]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>Full Shortcode Options\u003C\u002Fh4>\n\u003Cpre>\u003Ccode>[blogroll-links categoryslug=\"my-links\" sortby=\"link_name\" sortorder=\"asc\"]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>Parameters\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Ccode>categoryslug\u003C\u002Fcode> – The slug of the link category to display (required)\u003C\u002Fli>\n\u003Cli>\u003Ccode>sortby\u003C\u002Fcode> – Sort field: link_name, link_url, link_rating, link_id (default: link_name)\u003C\u002Fli>\n\u003Cli>\u003Ccode>sortorder\u003C\u002Fcode> – Sort direction: asc or desc (default: asc)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Examples\u003C\u002Fh4>\n\u003Cp>\u003Cstrong>Display friends’ websites sorted by name:\u003C\u002Fstrong>\u003Cbr \u002F>\n    [blogroll-links categoryslug=”friends” sortby=”link_name” sortorder=”asc”]\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Display resources sorted by rating (highest first):\u003C\u002Fstrong>\u003Cbr \u002F>\n    [blogroll-links categoryslug=”resources” sortby=”link_rating” sortorder=”desc”]\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Display social media profiles:\u003C\u002Fstrong>\u003Cbr \u002F>\n    [blogroll-links categoryslug=”social-profiles”]\u003C\u002Fp>\n\u003Ch4>Live Examples\u003C\u002Fh4>\n\u003Cp>See this plugin in action:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwww.rajiv.com\u002Ffriends\u002F\" rel=\"nofollow ugc\">www.rajiv.com\u002Ffriends\u002F\u003C\u002Fa> – Social networking links with XFN tags\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwww.rajiv.com\u002Fcharity\u002F\" rel=\"nofollow ugc\">www.rajiv.com\u002Fcharity\u002F\u003C\u002Fa> – Charitable organizations list\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Credits\u003C\u002Fh4>\n\u003Cp>Thanks to Dave Grega and Adam E. Falk (xenograg) for their contributions to this code.\u003C\u002Fp>\n\u003Cp>Version 3.0 was modernized using \u003Ca href=\"https:\u002F\u002Frajiv.com\u002Fblog\u002F2025\u002F11\u002F09\u002Fsynthesis-engineering-with-claude-code-technical-implementation-and-workflows\u002F\" rel=\"nofollow ugc\">Synthesis Coding\u003C\u002Fa> with Claude Code – a human-AI collaborative development approach.\u003C\u002Fp>\n","Display your blogroll links anywhere in posts or pages using a simple shortcode.",300,33136,"2025-11-29T18:37:00.000Z","6.7.5","5.0","7.4",[20,55,24,56],"bookmarks","shortcode","https:\u002F\u002Fgithub.com\u002Frajivpant\u002Fblogroll-links","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fblogroll-links.3.0.0.zip",100,{"slug":61,"name":62,"version":63,"author":64,"author_profile":65,"description":66,"short_description":67,"active_installs":68,"downloaded":69,"rating":59,"num_ratings":70,"last_updated":71,"tested_up_to":72,"requires_at_least":73,"requires_php":18,"tags":74,"homepage":77,"download_link":78,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"blogroll-rss-widget","Blogroll Widget with RSS Feeds","2.2","Jan Teriete","https:\u002F\u002Fprofiles.wordpress.org\u002Fleisurelarry\u002F","\u003Cp>This WordPress Widget allows you to display the recent posts of your blogroll links via RSS Feeds as a sidebar widget.\u003Cbr \u002F>\nThe Plugin works without Javascript and without AJAX. It uses the WordPress standard links database and honors the\u003Cbr \u002F>\nvisible and target settings as defined for each link (private links are not shown, links are displayed in the same or\u003Cbr \u002F>\nin a new window as specified). The Plugin is easy to install, the Widget is simple to use and highly customizable.\u003Cbr \u002F>\nYou can simply switch on \u002F off, select or type in the various configurations and settings.\u003C\u002Fp>\n\u003Cp>You can configure this Widget in the WordPress Appearance Widgets SubPanel as follows:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>add an own title to the sidebar widget\u003C\u002Fli>\n\u003Cli>define how many items you want to display \u003C\u002Fli>\n\u003Cli>choose the link category of the items (all links or one of your link categories)\u003C\u002Fli>\n\u003Cli>select the item order (link name ascending, link name descending, link id ascending, link id descending, random order)\u003C\u002Fli>\n\u003Cli>show the images entered to the respective links or let the plugin generate website thumbnails (via m-software.de) – NOT RECOMMENDED, as this service does not work properly anymore!\u003C\u002Fli>\n\u003Cli>define the image size\u003C\u002Fli>\n\u003Cli>show blogroll links\u003C\u002Fli>\n\u003Cli>add the ‘rel=nofollow’ attribute to the blogroll links\u003C\u002Fli>\n\u003Cli>define how many feed post links you want to display\u003C\u002Fli>\n\u003Cli>choose if you want to shorten the feed post link text and define the length in characters\u003C\u002Fli>\n\u003Cli>add the ‘rel=nofollow’ attribute to the feed post links\u003C\u002Fli>\n\u003Cli>show feed post excerpts\u003C\u002Fli>\n\u003Cli>define how many characters of the feed post excerpt you want to display\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Before using the Blogroll Widget with RSS Feeds make sure, that you have entered the right RSS Addresses to your links in the Links\u003Cbr \u002F>\nSubpanel. Otherwise this Plugin will not work correctly. No item is shown when no RSS Address is entered! With this you\u003Cbr \u002F>\nhave a further possibility to configure the Widget output. When you do not enter a RSS Address to a link, it will not be\u003Cbr \u002F>\ndisplayed in the Widget.\u003C\u002Fp>\n\u003Cp>Alternative to the WordPress Appearance Widgets SubPanel you can add and configure the Blogroll Widget with RSS Feeds directly\u003Cbr \u002F>\nin your theme file (e.g. sidebar.php). For details please see the installation tab.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Blogroll Widget with RSS Feeds requires WordPress Version 2.8 or higher\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Ch4>Available Languages\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>German\u003C\u002Fli>\n\u003Cli>English\u003C\u002Fli>\n\u003Cli>Italian – Thanks to talksina\u003C\u002Fli>\n\u003Cli>French – Thanks to \u003Ca href=\"http:\u002F\u002Fmaitremo.fr\u002F\" title=\"Ma&icirc;tre M&ocirc;\" rel=\"nofollow ugc\">Ma&icirc;tre M&ocirc;\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Belorussian – Thanks to \u003Ca href=\"http:\u002F\u002Fpc.de\u002F\" title=\"Marcis G.\" rel=\"nofollow ugc\">Marcis G.\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Bulgarian – Thanks to \u003Ca href=\"http:\u002F\u002Fwebhostinggeeks.com\u002F\" title=\"Web Geek\" rel=\"nofollow ugc\">Web Geek\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n","Displays the recent posts of your blogroll links via RSS Feeds in a customizable sidebar widget",200,52814,1,"2013-08-03T17:14:00.000Z","3.4.2","2.8",[20,55,75,24,76],"last-post","recent-post","http:\u002F\u002Fwww.officetrend.de\u002F2684\u002Fwordpress-plugin-blogroll-widget-with-rss-feeds\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fblogroll-rss-widget.zip",{"slug":80,"name":81,"version":82,"author":83,"author_profile":84,"description":85,"short_description":86,"active_installs":11,"downloaded":87,"rating":28,"num_ratings":28,"last_updated":88,"tested_up_to":89,"requires_at_least":90,"requires_php":91,"tags":92,"homepage":94,"download_link":95,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"bookmarks-shortcode","Bookmarks Shortcode","2.3.1","Shea Bunge","https:\u002F\u002Fprofiles.wordpress.org\u002Fbungeshea\u002F","\u003Cp>Creates three shortcodes – [bookmarks], [links] and [blogroll] – that will generate an unordered list of your WordPress links.\u003Cbr \u002F>\nPreforms the same function as \u003Ccode>wp_list_bookmarks()\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Cp>You can any of the shortcodes within a post, page, media, text widget, etc.\u003Cbr \u002F>\nThis makes it much more flexible then using the default Links page template that may be included in your theme as you can add other content surrounding the list, also when you change themes there is no need to edit the page.\u003C\u002Fp>\n\u003Cp>You can customize the output of the list by using the same arguments that are accepted by the \u003Ca href=\"https:\u002F\u002Fdeveloper.wordpress.org\u002Freference\u002Ffunctions\u002Fwp_list_bookmarks\u002F\" rel=\"nofollow ugc\">wp_list_bookmarks()\u003C\u002Fa> function.\u003Cbr \u002F>\nExample: \u003Ccode>[bookmarks show_images=0 show_ratings=1 show_name=1 ]\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fsheabunge\u002Fbookmarks-shortcode\" rel=\"nofollow ugc\">Contribute at GitHub\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch3>Update Notice\u003C\u002Fh3>\n\u003Ch4>2.2\u003C\u002Fh4>\n\u003Cp>Improved default bookmarks markup\u003C\u002Fp>\n","Creates shortcodes that will generate an unordered list of your WordPress links (bookmarks).",6387,"2020-12-01T15:59:00.000Z","5.6.17","2.5","5.2",[20,55,24,56,93],"wp_list_bookmarks","https:\u002F\u002Fgithub.com\u002Fsheabunge\u002Fbookmarks-shortcode","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fbookmarks-shortcode.zip",{"slug":97,"name":98,"version":99,"author":100,"author_profile":101,"description":102,"short_description":103,"active_installs":104,"downloaded":105,"rating":28,"num_ratings":28,"last_updated":106,"tested_up_to":107,"requires_at_least":107,"requires_php":18,"tags":108,"homepage":18,"download_link":110,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"display-links-by-category","Display Links by Category","1.0.1","Aleksandar Arsovski","https:\u002F\u002Fprofiles.wordpress.org\u002Falekarsovski\u002F","\u003Cp>This plugin allows users to display their WordPress links by category through custom fields.\u003C\u002Fp>\n\u003Cp>The following gives a step-by-step setup overview:\u003C\u002Fp>\n\u003Col>\n\u003Cli>Enable the plugin (check the installation tab)\u003C\u002Fli>\n\u003Cli>Go to the page\u002Fpost where you’d like to place your links\u002Fblogroll\u003C\u002Fli>\n\u003Cli>Make sure that Custom Fields are visible (on the edit page or post page click on the “Screen Options” in the top right and make sure “Custom Fields” is checked off)\u003C\u002Fli>\n\u003Cli>Under CUstom fields click on the enter new link\u003C\u002Fli>\n\u003Cli>Enter an ID in the “Name” field – the plugin uses the ID “display_links” as a default\u003C\u002Fli>\n\u003Cli>Enter the category name of the links you’d like to display in the “Value” field\u003C\u002Fli>\n\u003Cli>Click on the “Add Custom Field” button\u003C\u002Fli>\n\u003Cli>Enter the following shortcode into the post content area or the widget area you prefer: \u003Ccode>[links_by_cat field_id=\"(ID previously entered in Name field goes here)\"]\u003C\u002Fcode>\n\u003Cul>\n\u003Cli>Note that if you used “display_links” in the Name field, you do not need to enter the “field_id” parameter in the shortcode and can simply do: \u003Ccode>[links_by_cat]\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>The shortcode also supports many other parameters for ordering and structuring your links. All parameters on the list (except “category”) found on the following page are available: https:\u002F\u002Fcodex.wordpress.org\u002FTemplate_Tags\u002Fwp_list_bookmarks#Parameters\u003C\u002Fp>\n\u003Cp>Other parameter example:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[links_by_cat orderby=\"rating\"] -- This is an example using the orderby parameter from the list. The links will now be ordered by their rating.\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>Added in 1.0.1:\u003C\u002Fh4>\n\u003Cp>The ability to display all categories has been added to the shortcode. Simply add:\u003Cbr \u002F>\n    [links_by_cat display_all]\u003C\u002Fp>\n\u003Cp>Many bug fixes have also been introduced in version 1.0.1 as well, so please upgrade.\u003C\u002Fp>\n\u003Cp>Currently, only one category is supported per Custom Field entry; however, I am looking to update the plugin soon so that it supports multiple categories.\u003C\u002Fp>\n","A simple shortcode plugin for displaying links by category through custom fields.",40,4013,"2011-12-05T17:59:00.000Z","3.2.1",[20,55,109,24,56],"display-links","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fdisplay-links-by-category.1.0.1.zip",{"slug":112,"name":113,"version":114,"author":115,"author_profile":116,"description":117,"short_description":118,"active_installs":104,"downloaded":119,"rating":28,"num_ratings":28,"last_updated":18,"tested_up_to":120,"requires_at_least":121,"requires_php":18,"tags":122,"homepage":125,"download_link":126,"security_score":59,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":127},"faviroll","FAVIROLL – FAVIcons for blogROLL","0.6","UnderWordPressure","https:\u002F\u002Fprofiles.wordpress.org\u002Funderwordpressure\u002F","\u003Cp>This plugin convert the favicon.ico from the blogroll sites into PNG images and save this in a local cache file. The conversion process works just on the admin-page, visitors don’t have to waste time to wait for favicons from remote websites. If a blogroll entry was added or modified this single Link will be updated.\u003C\u002Fp>\n\u003Cp>All cached icons can conveniently be assigned to any of the bookmarks, just a mouse click.\u003C\u002Fp>\n\u003Cp>The plugin fallback to a default icon, if on the remote websites cannot be detected a valid favicon. The default icon can be configured like any other bookmark.\u003C\u002Fp>\n","This plugin convert the favicon.ico from the blogroll sites into PNG images and save this in a local cache file. The conversion process works just on  &hellip;",10895,"4.2.39","3.x",[20,55,123,124,24],"favicons","icons","http:\u002F\u002Fwww.andurban.de\u002Fwordpress-stuff\u002Fplugins\u002Ffaviroll","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Ffaviroll.zip","2026-03-15T10:48:56.248Z",{"attackSurface":129,"codeSignals":153,"taintFlows":230,"riskAssessment":231,"analyzedAt":236},{"hooks":130,"ajaxHandlers":149,"restRoutes":150,"shortcodes":151,"cronEvents":152,"entryPointCount":28,"unprotectedCount":28},[131,137,141,145],{"type":132,"name":133,"callback":134,"file":135,"line":136},"filter","pre_option_link_manager_enabled","__return_true","heirarchical-links.php",28,{"type":138,"name":139,"callback":140,"priority":70,"file":135,"line":36},"action","init","link_category_add_form_edit",{"type":138,"name":142,"callback":143,"file":135,"line":144},"widgets_init","hierarchical_link_categories_widget_init",38,{"type":138,"name":146,"callback":147,"priority":70,"file":135,"line":148},"admin_init","replace_link_categories_meta_box",45,[],[],[],[],{"dangerousFunctions":154,"sqlUsage":155,"outputEscaping":157,"fileOperations":28,"externalRequests":28,"nonceChecks":28,"capabilityChecks":70,"bundledLibraries":229},[],{"prepared":28,"raw":28,"locations":156},[],{"escaped":158,"rawEcho":159,"locations":160},8,39,[161,164,166,168,171,173,175,176,177,179,181,183,185,187,189,191,193,195,196,198,199,200,202,203,204,206,208,209,211,212,214,216,217,219,221,222,224,226,227],{"file":135,"line":162,"context":163},89,"raw output",{"file":135,"line":165,"context":163},110,{"file":135,"line":167,"context":163},245,{"file":169,"line":170,"context":163},"widget.php",29,{"file":169,"line":172,"context":163},50,{"file":169,"line":174,"context":163},98,{"file":169,"line":59,"context":163},{"file":169,"line":59,"context":163},{"file":169,"line":178,"context":163},104,{"file":169,"line":180,"context":163},105,{"file":169,"line":182,"context":163},106,{"file":169,"line":184,"context":163},107,{"file":169,"line":186,"context":163},108,{"file":169,"line":188,"context":163},109,{"file":169,"line":190,"context":163},111,{"file":169,"line":192,"context":163},129,{"file":169,"line":194,"context":163},130,{"file":169,"line":194,"context":163},{"file":169,"line":197,"context":163},138,{"file":169,"line":197,"context":163},{"file":169,"line":197,"context":163},{"file":169,"line":201,"context":163},141,{"file":169,"line":201,"context":163},{"file":169,"line":201,"context":163},{"file":169,"line":205,"context":163},145,{"file":169,"line":207,"context":163},146,{"file":169,"line":207,"context":163},{"file":169,"line":210,"context":163},149,{"file":169,"line":210,"context":163},{"file":169,"line":213,"context":163},150,{"file":169,"line":215,"context":163},151,{"file":169,"line":215,"context":163},{"file":169,"line":218,"context":163},152,{"file":169,"line":220,"context":163},153,{"file":169,"line":220,"context":163},{"file":169,"line":223,"context":163},154,{"file":169,"line":225,"context":163},155,{"file":169,"line":225,"context":163},{"file":169,"line":228,"context":163},156,[],[],{"summary":232,"deductions":233},"The hierarchical-link-categories v2.0.1 plugin exhibits a generally strong security posture based on the provided static analysis. The absence of any detectable AJAX handlers, REST API routes, shortcodes, or cron events significantly limits its attack surface. Furthermore, the code does not utilize dangerous functions, perform file operations, or make external HTTP requests, which are common sources of vulnerabilities.  The use of prepared statements for all SQL queries and the presence of at least one capability check are positive indicators of secure coding practices.  However, the low percentage of properly escaped output (17%) is a notable concern, as it suggests potential for cross-site scripting (XSS) vulnerabilities.  While the plugin has no recorded vulnerability history, the lack of proper output escaping could allow for XSS if user-supplied data is not handled securely in those 83% of unescaped outputs.  In conclusion, the plugin's limited attack surface and secure handling of database queries are commendable, but the significant output escaping deficiency presents a clear risk that warrants attention.",[234],{"reason":235,"points":158},"Low percentage of properly escaped output","2026-03-16T21:18:05.104Z",{"wat":238,"direct":247},{"assetPaths":239,"generatorPatterns":242,"scriptPaths":243,"versionParams":244},[240,241],"\u002Fwp-content\u002Fplugins\u002Fhierarchical-link-categories\u002Fcss\u002Fstyle.css","\u002Fwp-content\u002Fplugins\u002Fhierarchical-link-categories\u002Fjs\u002Fhierarchical-link-categories.js",[],[241],[245,246],"hierarchical-link-categories\u002Fcss\u002Fstyle.css?ver=","hierarchical-link-categories\u002Fjs\u002Fhierarchical-link-categories.js?ver=",{"cssClasses":248,"htmlComments":259,"htmlAttributes":267,"restEndpoints":306,"jsGlobals":307,"shortcodeOutput":311},[249,250,251,252,253,254,255,256,257,258,20],"categorydiv","category-tabs","tabs-panel","categorychecklist","popular-category","selectit","wp-hidden-children","wp-hidden-child","blogroll-subcategory","xoxo",[260,261,262,263,264,265,266],"For WP 3.5+ support, make sure to make the links visible","Runs directly after create_initial_taxonomies in taxonomy.php","We add the linkcategorydiv metabox before WP does so we take over control","No selected categories, strange","translators: %s: add new taxonomy label","Doesn't allow nesting","Update later; allows nesting",[268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,278,285,280,286,281,287,282,283,284,288,289,290,291,292,293,269,294,270,295,271,272,273,295,274,296,275,276,277,297,278,279,280,285,281,287,282,283,284,298,299,300,301,302,303,304,305,305,299,300,301,302,303,304,305,305,299,300,301,302,303,304,305,305,299,300,301,302,303,304,305],"id=\"taxonomy-category\"","id=\"category-tabs\"","id=\"categories-all\"","id=\"categorychecklist\"","class=\"list:category categorychecklist form-no-clear\"","id=\"categories-pop\"","id=\"categorychecklist-pop\"","id=\"category-adder\"","class=\"wp-hidden-children\"","id=\"category-add-toggle\"","id=\"link-category-add\"","class=\"wp-hidden-child\"","id=\"newcat\"","id=\"newcategory_parent\"","id=\"category-add-submit\"","class=\"add:categorychecklist:linkcategorydiv button\"","id=\"category-ajax-response\"","class=\"form-required form-input-tip\"","name=\"newcat\"","name=\"newlink_category_parent\"","name=\"link_category[]\"","id=\"in-link-category-","class=\"selectit\"","for=\"in-link-category-","id=\"linkcategorydiv\"","class=\"categorydiv\"","class=\"category-tabs\"","class=\"tabs-panel\"","class=\"categorychecklist form-no-clear\"","class=\"hide-if-no-js\"","name=\"_ajax_nonce\"","id=\"linkcat\"","class=\"linkcat\"","class=\"blogroll-subcategory\"","id=\"","class=\"blogroll-cat-","class=\"xoxo blogroll blogroll-cat-","class=\"xoxo blogroll\"",[],[308,309,310],"window.wpLink","window.categoryTabs","window.customLinkCategories",[]]