[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fd7uRwOA6gFzfIV42oNCMnAA3rK_-7or1YwxWL0c8Oyg":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":40,"analysis":135,"fingerprints":195},"custom-posts-per-page","Custom Posts Per Page","1.7.1","Jeremy Felt","https:\u002F\u002Fprofiles.wordpress.org\u002Fjeremyfelt\u002F","\u003Cp>Custom Posts Per Page allows you to specify how many posts are displayed per page depending on your current view. Once settings are changed, the \u003Cem>Blog pages show at most\u003C\u002Fem> setting in the \u003Cem>Reading\u003C\u002Fem> menu will be ignored.\u003C\u002Fp>\n\u003Cp>Settings are available for:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Home (Index) Page\n\u003Cul>\n\u003Cli>As long as view is set to blog posts, not static page.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Category Pages\u003C\u002Fli>\n\u003Cli>Tag Pages\u003C\u002Fli>\n\u003Cli>Author Pages\u003C\u002Fli>\n\u003Cli>Archive Pages\u003C\u002Fli>\n\u003Cli>Search Pages\u003C\u002Fli>\n\u003Cli>Default Page (\u003Cem>Any page not covered above.\u003C\u002Fem>)\u003C\u002Fli>\n\u003Cli>Custom Post Type archive pages\n\u003Cul>\n\u003Cli>All Custom Post Types are detected automatically.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Each of the above settings can have a different value for the first page displayed \u003Cstrong>and\u003C\u002Fstrong> subsequent paged views.\u003C\u002Fp>\n\u003Cp>Custom Posts Per Page makes it easy to manage exactly how your content is displayed to your readers, especially when different views have different layouts, rather than relying on the single setting in the Reading menu or having to hard code options in your custom theme.\u003C\u002Fp>\n","Custom Posts Per Page provides a settings page in your WordPress admin that allows you to specify how many posts are displayed for different views.",900,37378,96,12,"2014-12-11T19:54:00.000Z","4.1.42","4.0","",[20,21,22,23,24],"admin","administration","archives","posts-per-page","settings","https:\u002F\u002Fjeremyfelt.com\u002Fwordpress\u002Fplugins\u002Fcustom-posts-per-page\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fcustom-posts-per-page.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":36,"avg_patch_time_days":37,"trust_score":38,"computed_at":39},"jeremyfelt",5,1230,94,30,90,"2026-04-05T17:03:57.818Z",[41,59,78,93,115],{"slug":42,"name":43,"version":44,"author":45,"author_profile":46,"description":47,"short_description":48,"active_installs":49,"downloaded":50,"rating":28,"num_ratings":28,"last_updated":51,"tested_up_to":52,"requires_at_least":53,"requires_php":54,"tags":55,"homepage":56,"download_link":57,"security_score":58,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"custom-posts-per-page-reloaded","Custom Posts Per Page Reloaded","2.0.0","WPZOOM","https:\u002F\u002Fprofiles.wordpress.org\u002Fwpzoom\u002F","\u003Cp>Custom Posts Per Page Reloaded allows you to specify how many posts are displayed per page depending on your current view. Once settings are changed, the \u003Cem>Blog pages show at most\u003C\u002Fem> setting in the \u003Cem>Reading\u003C\u002Fem> menu will be ignored.\u003C\u002Fp>\n\u003Cp>Settings are available for:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Home (Index) Page\n\u003Cul>\n\u003Cli>As long as view is set to blog posts, not static page.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Category Pages\u003C\u002Fli>\n\u003Cli>Tag Pages\u003C\u002Fli>\n\u003Cli>Author Pages\u003C\u002Fli>\n\u003Cli>Archive Pages\u003C\u002Fli>\n\u003Cli>Search Pages\u003C\u002Fli>\n\u003Cli>Default Page (\u003Cem>Any page not covered above.\u003C\u002Fem>)\u003C\u002Fli>\n\u003Cli>Custom Post Type archive pages\n\u003Cul>\n\u003Cli>All Custom Post Types are detected automatically.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Each of the above settings can have a different value for the first page displayed \u003Cstrong>and\u003C\u002Fstrong> subsequent paged views.\u003C\u002Fp>\n\u003Cp>Custom Posts Per Page makes it easy to manage exactly how your content is displayed to your readers, especially when different views have different layouts, rather than relying on the single setting in the Reading menu or having to hard code options in your custom theme.\u003C\u002Fp>\n\u003Cp>This is a fork (an updated clone) of \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fcustom-posts-per-page\u002F\" rel=\"ugc\">Custom Posts Per Page\u003C\u002Fa> by \u003Ca href=\"https:\u002F\u002Fjeremyfelt.com\u002F\" rel=\"nofollow ugc\">Jeremy Felt\u003C\u002Fa>.\u003C\u002Fp>\n","Custom Posts Per Page Reloaded provides a settings page in your WordPress admin that allows you to specify how many posts are displayed for different  &hellip;",700,10286,"2024-07-17T13:42:00.000Z","6.6.5","4.3","7.4",[20,21,22,23,24],"https:\u002F\u002Fwpzoom.com\u002Fplugins\u002Fcustom-posts-per-page-reloaded\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fcustom-posts-per-page-reloaded.zip",92,{"slug":60,"name":61,"version":62,"author":63,"author_profile":64,"description":65,"short_description":66,"active_installs":28,"downloaded":67,"rating":68,"num_ratings":69,"last_updated":18,"tested_up_to":52,"requires_at_least":70,"requires_php":71,"tags":72,"homepage":75,"download_link":76,"security_score":68,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":77},"change-administration-email","Change Administration Email","1.0.3","Plugin Critic","https:\u002F\u002Fprofiles.wordpress.org\u002Fplugincritic\u002F","\u003Cp>Having trouble changing or confirming your General Settings Administration Email Address?\u003C\u002Fp>\n\u003Cp>A second notice with “Confirm Immediately” is added to update the primary site email without needing to click the confirmation link in the email sent from WordPress.\u003C\u002Fp>\n\u003Cp>\u003Cspan class=\"embed-youtube\" style=\"text-align:center; display: block;\">\u003Ciframe loading=\"lazy\" class=\"youtube-player\" width=\"750\" height=\"422\" src=\"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002F182EOHmawV8?version=3&rel=1&showsearch=0&showinfo=1&iv_load_policy=1&fs=1&hl=en-US&autohide=2&wmode=transparent\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox\">\u003C\u002Fiframe>\u003C\u002Fspan>\u003C\u002Fp>\n\u003Cp>Submit any support requests to \u003Ca href=\"https:\u002F\u002Fplugincritic.com\u002Fcontact\u002F\" rel=\"nofollow ugc\">https:\u002F\u002Fplugincritic.com\u002Fcontact\u002F\u003C\u002Fa>\u003C\u002Fp>\n","Change the Site's Administration Email Address on the General Settings page without the confirmation email.",1842,100,1,"6.4","8.0",[21,73,74,24],"developer-tools","email","https:\u002F\u002Fplugincritic.com\u002Fplugin\u002Fchange-administration-email\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fchange-administration-email.1.0.3.zip","2026-03-15T10:48:56.248Z",{"slug":79,"name":80,"version":81,"author":82,"author_profile":83,"description":84,"short_description":85,"active_installs":28,"downloaded":86,"rating":28,"num_ratings":28,"last_updated":18,"tested_up_to":87,"requires_at_least":17,"requires_php":18,"tags":88,"homepage":18,"download_link":92,"security_score":68,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":77},"plan-lekcji","Timetable","2.7.3","Damian Wałach","https:\u002F\u002Fprofiles.wordpress.org\u002Fdamianxxxx\u002F","\u003Cp>A WordPress plugin for managing school timetables based on files generated by Vulcan Optivum, allowing ZIP file uploads.\u003C\u002Fp>\n\u003Ch3>Usage\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>To use, place the shortcode [planle_plan] on a page.\u003C\u002Fli>\n\u003Cli>Required menu type selected in Vulcan Optivum – bulleted list on the left side.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Upload a ZIP file containing the timetable.\u003C\u002Fli>\n\u003Cli>Extract the ZIP file on the server.\u003C\u002Fli>\n\u003Cli>Settings to control whether the timetable is active and the option to disable it.\u003C\u002Fli>\n\u003Cli>Test options to switch between normal and test timetables.\u003C\u002Fli>\n\u003Cli>Option to display the timetable only to logged-in users.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Settings\u003C\u002Fh3>\n\u003Cp>After activating the plugin, go to the settings section in the admin panel:\u003Cbr \u002F>\n1. Timetable effective date (format: d-m-Y).\u003Cbr \u002F>\n2. Option to disable the timetable.\u003Cbr \u002F>\n3. Option to show the timetable only to logged-in users.\u003Cbr \u002F>\n4. Option to enable both normal and test timetables.\u003Cbr \u002F>\n5. Option to enable only the test timetable.\u003C\u002Fp>\n\u003Ch3>How to Use\u003C\u002Fh3>\n\u003Col>\n\u003Cli>In the admin panel, go to the “Timetable” plugin settings.\u003C\u002Fli>\n\u003Cli>Update timetable settings, including the effective date and whether the timetable should be active or disabled.\u003C\u002Fli>\n\u003Cli>Upload a ZIP file containing the timetable.\u003C\u002Fli>\n\u003Cli>You can also choose options related to the test timetable and displaying the timetable only to logged-in users.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>License\u003C\u002Fh3>\n\u003Cp>This plugin is distributed under the GPLv2 or later license. More information can be found on the \u003Ca href=\"https:\u002F\u002Fwww.gnu.org\u002Flicenses\u002Fgpl-2.0.html\" rel=\"nofollow ugc\">GPL license page\u003C\u002Fa>.\u003C\u002Fp>\n","A WordPress plugin for managing school timetables based on files generated by Vulcan Optivum, allowing ZIP file uploads.",933,"6.9.4",[21,89,24,90,91],"schedule","timetable","wp","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fplan-lekcji.2.7.3.zip",{"slug":94,"name":95,"version":96,"author":97,"author_profile":98,"description":99,"short_description":100,"active_installs":101,"downloaded":102,"rating":103,"num_ratings":104,"last_updated":105,"tested_up_to":87,"requires_at_least":106,"requires_php":107,"tags":108,"homepage":18,"download_link":112,"security_score":13,"vuln_count":113,"unpatched_count":28,"last_vuln_date":114,"fetched_at":30},"wp-maintenance-mode","LightStart – Maintenance Mode, Coming Soon and Landing Page Builder","2.6.20","Themeisle","https:\u002F\u002Fprofiles.wordpress.org\u002Fthemeisle\u002F","\u003Cp>Add a maintenance page to your blog that lets visitors know your blog is down for maintenance, add a coming soon page for a new website or create a landing page for an existing site. User with admin rights gets full access to the blog including the front end.\u003C\u002Fp>\n\u003Cp>Activate the plugin and your blog is in maintenance-mode, works and only registered users with enough rights can see the front end. You can use a date with a countdown timer for visitor information or set a value and unit for information.\u003C\u002Fp>\n\u003Cp>Also works with WordPress Multisite installs (each blog from the network has its own maintenance settings).\u003C\u002Fp>\n\u003Ch4>Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Fully customizable (change colors, texts and backgrounds).\u003C\u002Fli>\n\u003Cli>Subscription form (export emails to .csv file).\u003C\u002Fli>\n\u003Cli>Countdown timer (remaining time).\u003C\u002Fli>\n\u003Cli>Contact form (receive emails from visitors).\u003C\u002Fli>\n\u003Cli>Coming soon page;\u003C\u002Fli>\n\u003Cli>Landing page templates;\u003C\u002Fli>\n\u003Cli>WordPress multisite;\u003C\u002Fli>\n\u003Cli>Responsive design;\u003C\u002Fli>\n\u003Cli>Social media icons;\u003C\u002Fli>\n\u003Cli>Works with any WordPress theme;\u003C\u002Fli>\n\u003Cli>SEO options;\u003C\u002Fli>\n\u003Cli>Exclude URLs from maintenance;\u003C\u002Fli>\n\u003Cli>Bot functionality to collect the emails in a friendly and efficient way;\u003C\u002Fli>\n\u003Cli>GDPR Ready;\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Bugs, technical hints or contribute\u003C\u002Fh4>\n\u003Cp>Please give us feedback, contribute and file technical bugs on \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fandrianvaleanu\u002FWP-Maintenance-Mode\" rel=\"nofollow ugc\">GitHub Repo\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch4>Credits\u003C\u002Fh4>\n\u003Cp>Developed by \u003Ca href=\"https:\u002F\u002Fthemeisle.com\" rel=\"nofollow ugc\">Themeisle\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch4>What’s Next\u003C\u002Fh4>\n\u003Cp>If you like this plugin, then consider checking out our other projects:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Foptimole.com\u002F\" rel=\"nofollow ugc\">Optimole\u003C\u002Fa> – Optimole is your all-in-one image optimization solution for WordPress & beyond.\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwpshout.com\u002F\" rel=\"nofollow ugc\">WPShout\u003C\u002Fa> – In-Depth WordPress Tutorials for Developers\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Frevive.social\u002F\" rel=\"nofollow ugc\">Revive Social\u003C\u002Fa> – Revive Old Posts helps you keep your content alive and in front the audiences that matter.\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwww.codeinwp.com\u002F\" rel=\"nofollow ugc\">CodeinWP\u003C\u002Fa> – CodeinWP stands for all-things-WordPress. From web design to freelancing and from development to business, your questions are covered.\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fdomainwheel.com\" rel=\"nofollow ugc\">DomainWheel\u003C\u002Fa> – Free Short Website name generator, with the help of AI, for instant ideas.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Check-out \u003Ca href=\"https:\u002F\u002Fthemeisle.com\u002Fblog\u002F\" title=\"Themeisle blog\" rel=\"nofollow ugc\">our blog\u003C\u002Fa> to learn from our \u003Ca href=\"https:\u002F\u002Fthemeisle.com\u002Fblog\u002Fcategory\u002Fwordpress\u002Freviews\u002F\" title=\"WordPress Reviews\" rel=\"nofollow ugc\">WordPress Reviews\u003C\u002Fa> and see other \u003Ca href=\"https:\u002F\u002Fthemeisle.com\u002Fblog\u002Fcategory\u002Fwordpress-plugins\u002F\" title=\"WordPress Plugins Comparisons\" rel=\"nofollow ugc\">WordPress plugins\u003C\u002Fa>.\u003C\u002Fp>\n","Easy Drag & Drop Page Builder that adds a splash page to your site that it's perfect for a coming soon page, maintenance or landing page.",500000,19310486,86,859,"2025-12-10T19:23:00.000Z","4.7","7.1",[20,21,109,110,111],"coming-soon","maintenance-mode","unavailable","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwp-maintenance-mode.2.6.20.zip",6,"2024-01-05 00:00:00",{"slug":116,"name":117,"version":118,"author":119,"author_profile":120,"description":121,"short_description":122,"active_installs":123,"downloaded":124,"rating":36,"num_ratings":125,"last_updated":126,"tested_up_to":127,"requires_at_least":17,"requires_php":18,"tags":128,"homepage":130,"download_link":131,"security_score":132,"vuln_count":133,"unpatched_count":28,"last_vuln_date":134,"fetched_at":30},"adminimize","Adminimize","1.11.11","WP Media","https:\u002F\u002Fprofiles.wordpress.org\u002Fwp_media\u002F","\u003Cp>If you manage a multi-author WordPress blog or WordPress sites for clients, then you may have wondered if it was possible to clean up the WordPress admin area for your users? There are lots of things in the WordPress admin area that your users don’t need to see or use. This plugin help you to hide unnecessary items from WordPress admin area.\u003C\u002Fp>\n\u003Cp>Adminimize makes it easy to remove items from view based on a user’s role.\u003C\u002Fp>\n\u003Ch4>What does this plugin do?\u003C\u002Fh4>\n\u003Cp>The plugin changes the administration backend and gives you the power to assign rights on certain parts. Admins can activate\u002Fdeactivate every part of the menu and even parts of the sub-menu. Meta fields can be administered separately for posts and pages. Certain parts of the write menu can be deactivated separately for admins or non-admins. The header of the backend is minimized and optimized to give you more space and the structure of the menu gets changed to make it more logical – this can all be done per user so each role and their resulting users can have his own settings.\u003C\u002Fp>\n\u003Ch4>Support Custom Post Type\u003C\u002Fh4>\n\u003Cp>The plugin support all functions also for custom post types, automatically in the settings page.\u003C\u002Fp>\n\u003Ch4>Support Custom Options on all different post types\u003C\u002Fh4>\n\u003Cp>It is possible to add own options to hide areas in the back-end of WordPress. It is easy and you must only forgive a ID or class, a selector, of the markup, that you will hide.\u003C\u002Fp>\n\u003Ch4>Compatibility with plugins for MetaBoxes in Write-area\u003C\u002Fh4>\n\u003Cp>You can add your own options, you must only check for css selectors.\u003C\u002Fp>\n\u003Ch4>Help with “Your own options”\u003C\u002Fh4>\n\u003Cp>See the \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fsupport\u002Ftopic\u002F328449\" title=\"Plugin: Adminimize Help with Your own options (3 posts)\" rel=\"ugc\">entry on the WP community forum\u003C\u002Fa> for help with this great possibility.\u003C\u002Fp>\n\u003Ch4>License\u003C\u002Fh4>\n\u003Cp>Good news, this plugin is free for everyone! Since it’s released under the GPL, you can use it free of charge on your personal or commercial blog. But if you enjoy this plugin, you can thank me and leave a \u003Ca href=\"http:\u002F\u002Fbueltge.de\u002Fwunschliste\u002F\" title=\"Wishliste and Donate\" rel=\"nofollow ugc\">small donation\u003C\u002Fa> for the time I’ve spent writing and supporting this plugin. And I really don’t want to know how many hours of my life this plugin has already eaten 😉\u003C\u002Fp>\n\u003Ch4>Translations\u003C\u002Fh4>\n\u003Cp>The plugin comes with various translations, please refer to the \u003Ca href=\"https:\u002F\u002Fcodex.wordpress.org\u002FInstalling_WordPress_in_Your_Language\" title=\"Installing WordPress in Your Language\" rel=\"nofollow ugc\">WordPress Codex\u003C\u002Fa> for more information about activating the translation. If you want to help to translate the plugin to your language, please have a look at the sitemap.pot file which contains all definitions and may be used with a \u003Ca href=\"http:\u002F\u002Fwww.gnu.org\u002Fsoftware\u002Fgettext\u002F\" rel=\"nofollow ugc\">gettext\u003C\u002Fa> editor like \u003Ca href=\"http:\u002F\u002Fwww.poedit.net\u002F\" rel=\"nofollow ugc\">Poedit\u003C\u002Fa> (Windows) or use, I prefers this, the \u003Ca href=\"https:\u002F\u002Ftranslate.wordpress.org\u002Fprojects\u002Fwp-plugins\u002Fadminimize\" rel=\"nofollow ugc\">translation service from wordpress.org\u003C\u002Fa>.\u003C\u002Fp>\n","Adminimize that lets you hide 'unnecessary' items from the WordPress backend",200000,3104947,253,"2024-03-15T16:24:00.000Z","6.4.8",[21,129],"customization","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fadminimize\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fadminimize.1.11.11.zip",84,2,"2014-08-01 00:00:00",{"attackSurface":136,"codeSignals":172,"taintFlows":185,"riskAssessment":186,"analyzedAt":194},{"hooks":137,"ajaxHandlers":168,"restRoutes":169,"shortcodes":170,"cronEvents":171,"entryPointCount":28,"unprotectedCount":28},[138,145,150,153,156,160,164],{"type":139,"name":140,"callback":141,"priority":142,"file":143,"line":144},"filter","plugin_action_links","add_plugin_action_links",10,"custom-posts-per-page.php",73,{"type":146,"name":147,"callback":148,"file":143,"line":149},"action","admin_init","upgrade_check",75,{"type":146,"name":147,"callback":151,"file":143,"line":152},"register_settings",76,{"type":146,"name":147,"callback":154,"file":143,"line":155},"add_languages",77,{"type":146,"name":157,"callback":158,"file":143,"line":159},"admin_menu","add_settings",79,{"type":146,"name":161,"callback":162,"file":143,"line":163},"pre_get_posts","modify_query",82,{"type":139,"name":165,"callback":166,"file":143,"line":167},"found_posts","correct_found_posts",456,[],[],[],[],{"dangerousFunctions":173,"sqlUsage":174,"outputEscaping":176,"fileOperations":28,"externalRequests":28,"nonceChecks":28,"capabilityChecks":28,"bundledLibraries":184},[],{"prepared":28,"raw":28,"locations":175},[],{"escaped":177,"rawEcho":133,"locations":178},48,[179,182],{"file":143,"line":180,"context":181},212,"raw output",{"file":143,"line":183,"context":181},313,[],[],{"summary":187,"deductions":188},"The 'custom-posts-per-page' plugin version 1.7.1 exhibits a strong security posture based on the provided static analysis. There are no identified dangerous functions, SQL injection vulnerabilities due to the use of prepared statements, or file operations. The output escaping is also very high, with 96% of outputs properly escaped. Furthermore, the plugin has no recorded vulnerabilities or CVEs, indicating a history of stable and secure development. The attack surface is effectively zero, with no AJAX handlers, REST API routes, shortcodes, or cron events exposed without authentication or permission checks. This suggests diligent security practices by the developers.\n\nHowever, a notable concern arises from the complete absence of nonce checks and capability checks. While the current analysis shows no direct vulnerabilities stemming from this, it represents a significant gap in WordPress security best practices. In the absence of these checks, if any new entry points were introduced or existing ones were overlooked during development, it could lead to potential unauthorized actions or privilege escalation. The taint analysis also shows zero flows, which is positive but could also be a reflection of the limited attack surface and potential for unanalyzed flows if the code were more complex.\n\nIn conclusion, the plugin is currently very secure, with no known vulnerabilities and a well-mitigated attack surface. The developers have clearly prioritized secure coding practices. The primary weakness lies in the lack of nonce and capability checks, which, while not currently exploited, introduces a theoretical risk that could be addressed by implementing these standard WordPress security measures.",[189,192],{"reason":190,"points":191},"Missing Nonce Checks",8,{"reason":193,"points":191},"Missing Capability Checks","2026-03-16T19:10:54.447Z",{"wat":196,"direct":205},{"assetPaths":197,"generatorPatterns":200,"scriptPaths":201,"versionParams":202},[198,199],"\u002Fwp-content\u002Fplugins\u002Fcustom-posts-per-page\u002Fcss\u002Fsettings.css","\u002Fwp-content\u002Fplugins\u002Fcustom-posts-per-page\u002Fjs\u002Fsettings.js",[],[199],[203,204],"custom-posts-per-page\u002Fcss\u002Fsettings.css?ver=","custom-posts-per-page\u002Fjs\u002Fsettings.js?ver=",{"cssClasses":206,"htmlComments":207,"htmlAttributes":208,"restEndpoints":209,"jsGlobals":210,"shortcodeOutput":211},[],[],[],[],[],[]]