[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fX_S8zzOdtyT0Ns6qdj0CPaf0xGsp2q2YeN4w53Q1suA":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":138,"fingerprints":376},"whp-hide-posts","Hide Posts","2.1.0","MartinCV","https:\u002F\u002Fprofiles.wordpress.org\u002Fmartin7ba\u002F","\u003Cp>This plugin allows you to hide any posts on the home page, category page, search page, tags page, authors page, RSS Feed, REST API, Post Navigation, Native Recent Posts Widget, XML sitemaps, Yoast SEO sitemap, breadcrumbs and internal link suggestions.\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fdemo.tastewp.com\u002Fwhp-hide-posts\" title=\"Demo\" rel=\"nofollow ugc\">Try the Demo\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch4>Features:\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Hide posts on specific archives and pages (home, categories, search, tags, authors, date, blog page, etc.)\u003C\u002Fli>\n\u003Cli>Hide posts from RSS Feed and REST API\u003C\u002Fli>\n\u003Cli>Hide posts from XML sitemaps (WordPress core and Yoast SEO)\u003C\u002Fli>\n\u003Cli>Hide posts from Yoast SEO breadcrumbs and internal link suggestions\u003C\u002Fli>\n\u003Cli>Full Gutenberg Block Editor support with metabox in sidebar\u003C\u002Fli>\n\u003Cli>Works with Gutenberg Query Loop and Latest Posts blocks\u003C\u002Fli>\n\u003Cli>Custom Post Types support – enable hide functionality for any post type\u003C\u002Fli>\n\u003Cli>WooCommerce integration – hide products on store page, category pages, and REST API\u003C\u002Fli>\n\u003Cli>Bulk Edit and Quick Edit support for efficient management\u003C\u002Fli>\n\u003Cli>Custom database table for optimized performance\u003C\u002Fli>\n\u003Cli>Comprehensive caching for fast page loads\u003C\u002Fli>\n\u003C\u002Ful>\n","Allows you to hide any posts on the home page, category page, search page, tags page, authors page, RSS Feed, REST API, XML sitemaps, SEO integrations &hellip;",20000,249068,94,22,"2025-11-24T00:11:00.000Z","6.8.5","5.0","7.3",[20,21,22,23,24],"hide","hide-posts","hide-products","show","visibility","","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwhp-hide-posts.2.1.0.zip",100,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},"martin7ba",3,20060,95,30,91,"2026-04-03T23:02:50.535Z",[41,63,83,100,121],{"slug":42,"name":43,"version":44,"author":45,"author_profile":46,"description":47,"short_description":48,"active_installs":49,"downloaded":50,"rating":51,"num_ratings":52,"last_updated":53,"tested_up_to":16,"requires_at_least":54,"requires_php":25,"tags":55,"homepage":58,"download_link":59,"security_score":60,"vuln_count":61,"unpatched_count":28,"last_vuln_date":62,"fetched_at":30},"wp-showhide","WP-ShowHide","1.06","Lester Chan","https:\u002F\u002Fprofiles.wordpress.org\u002Fgamerz\u002F","\u003Cp>By default the content is hidden and user will have to click on the “Show Content” link to toggle it. Similar to what Engadget is doing for their press releases. Example usage: \u003Ccode>[showhide type=\"pressrelease\"]Press Release goes in here.[\u002Fshowhide]\u003C\u002Fcode>\u003C\u002Fp>\n\u003Ch3>Usage\u003C\u002Fh3>\n\u003Col>\n\u003Cli>By default, content within the showhide shortcode will be hidden.\u003C\u002Fli>\n\u003Cli>Example: \u003Ccode>[showhide]Press release content goes in here.[\u002Fshowhide]\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Default Values: \u003Ccode>[showhide type=\"pressrelease\" more_text=\"Show Press Release (%s More Words)\" less_text=\"Hide Press Release (%s Less Words)\" hidden=\"yes\"]\u003C\u002Fcode>\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>You can have multiple showhide content within a post or a page, just by having a new type.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Example: \u003Ccode>[showhide type=\"links\" more_text=\"Show Links (%s More Words)\" less_text=\"Hide Links (%s Less Words)\"]Links will go in here.[\u002Fshowhide]\u003C\u002Fcode>\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>If you want to set the default visibility to display.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Example: \u003Ccode>[showhide hidden=\"no\"]Press release content goes in here.[\u002Fshowhide]\u003C\u002Fcode>\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>You can style the content via CSS that is generated by the plugin. Here is a sample of the generated HTML. Note that pressrelease is the default type.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cpre>\u003Ccode>\u003Cdiv id=\"pressrelease-link-1\" class=\"sh-link pressrelease-link sh-hide\">  \n  \u003Ca href=\"#\">  \n    \u003Cspan id=\"pressrelease-toggle-1\">Show Press Release (4 More Words)\u003C\u002Fspan>  \n  \u003C\u002Fa>  \n\u003C\u002Fdiv>  \n\u003Cdiv id=\"pressrelease-content-1\" class=\"sh-content pressrelease-content sh-hide\" style=\"display: none;\">Content\u003C\u002Fdiv>\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Col>\n\u003Cli>With the example above, here are the following styles you can use in your CSS:\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cpre>\u003Ccode>.sh-link A { }  \n.sh-content { }  \n.pressrelease-link { }  \n.pressrelease-link.sh-hide A { }  \n.pressrelease-link.sh-show A { }  \n.pressrelease-content { }  \n.pressrelease-content.sh-hide { }  \n.pressrelease-content.sh-show { }\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3>Development\u003C\u002Fh3>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Flesterchan\u002Fwp-showhide\" title=\"https:\u002F\u002Fgithub.com\u002Flesterchan\u002Fwp-showhide\" rel=\"nofollow ugc\">https:\u002F\u002Fgithub.com\u002Flesterchan\u002Fwp-showhide\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch3>Translations\u003C\u002Fh3>\n\u003Cp>\u003Ca href=\"http:\u002F\u002Fdev.wp-plugins.org\u002Fbrowser\u002Fwp-showhide\u002Fi18n\u002F\" title=\"http:\u002F\u002Fdev.wp-plugins.org\u002Fbrowser\u002Fwp-showhide\u002Fi18n\u002F\" rel=\"nofollow ugc\">http:\u002F\u002Fdev.wp-plugins.org\u002Fbrowser\u002Fwp-showhide\u002Fi18n\u002F\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch3>Credits\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Plugin icon by \u003Ca href=\"http:\u002F\u002Fwww.freepik.com\" rel=\"nofollow ugc\">Freepik\u003C\u002Fa> from \u003Ca href=\"http:\u002F\u002Fwww.flaticon.com\" rel=\"nofollow ugc\">Flaticon\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Donations\u003C\u002Fh3>\n\u003Cp>I spent most of my free time creating, updating, maintaining and supporting these plugins, if you really love my plugins and could spare me a couple of bucks, I will really appreciate it. If not feel free to use it without any obligations.\u003C\u002Fp>\n","Allows you to embed content within your blog post via WordPress ShortCode API and toggling the visibility of the content via a link.",10000,140751,84,43,"2025-11-28T12:08:00.000Z","3.0",[56,20,57,23,24],"content","press-release","https:\u002F\u002Flesterchan.net\u002Fportfolio\u002Fprogramming\u002Fphp\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwp-showhide.1.06.zip",98,2,"2025-12-15 00:00:00",{"slug":64,"name":65,"version":66,"author":67,"author_profile":68,"description":69,"short_description":70,"active_installs":71,"downloaded":72,"rating":73,"num_ratings":74,"last_updated":75,"tested_up_to":16,"requires_at_least":76,"requires_php":77,"tags":78,"homepage":81,"download_link":82,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"content-visibility-for-divi-builder","Content Visibility for Divi Builder","4.02","Jonathan Horowitz","https:\u002F\u002Fprofiles.wordpress.org\u002Fjhorowitz\u002F","\u003Cp>Content Visibility for Divi Builder allows Sections and Modules to be displayed\u002Fhidden based on the outcome of a PHP boolean expression.\u003C\u002Fp>\n\u003Cp>This plugin is for both the standalone Divi theme (or child themes thereof) and the Divi Builder plugin, version 3 or higher!\u003C\u002Fp>\n","Content Visibility for Divi Builder.",2000,69003,96,99,"2026-02-03T18:45:00.000Z","5.5","7.0",[79,80,20,23,24],"conditional","divi","https:\u002F\u002Faod-tech.com\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fcontent-visibility-for-divi-builder.4.02.zip",{"slug":84,"name":85,"version":86,"author":87,"author_profile":88,"description":89,"short_description":90,"active_installs":91,"downloaded":92,"rating":28,"num_ratings":28,"last_updated":93,"tested_up_to":94,"requires_at_least":17,"requires_php":77,"tags":95,"homepage":97,"download_link":98,"security_score":99,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"unlisted-posts","Unlisted Posts","1.1.0","Andy Feliciotti","https:\u002F\u002Fprofiles.wordpress.org\u002Fsomeguy9\u002F","\u003Cp>This plugin adds a “Unlisted?” checkbox in the “Publish” box while using the classic editor and Gutenberg. When this is checked the post will be excluded from most areas of your website by filtering pre_get_posts filter. This means posts will be excluded from RSS feeds, blog pages, widgets, category pages, archive pages, and more. Additionally it adds a noindex tag to the unlisted page to prevent Google from indexing the page. This is useful if you want to publish some information on your site and allows others to view it via the link without fully publishing.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Features\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Simple checkbox to unlist posts when publishing a post\u003C\u002Fli>\n\u003Cli>Allows you to hide posts from most areas of your site\u003C\u002Fli>\n\u003Cli>Add a noindex tag to pages that are unlisted\u003C\u002Fli>\n\u003C\u002Ful>\n","Allows you to easily exclude posts from feeds, category pages, blog pages and more using one checkbox on posts.",90,1626,"2022-07-10T22:46:00.000Z","5.9.13",[96,21,24],"exclude","https:\u002F\u002Fsmartwp.co\u002Funlisted-posts","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Funlisted-posts.zip",85,{"slug":101,"name":102,"version":103,"author":104,"author_profile":105,"description":106,"short_description":107,"active_installs":108,"downloaded":109,"rating":110,"num_ratings":111,"last_updated":25,"tested_up_to":112,"requires_at_least":113,"requires_php":77,"tags":114,"homepage":25,"download_link":119,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":120},"responsive-visibility","Responsive Visibility for Blocks Editor (Hide\u002FShow Blocks for Devices)","1.0.6","wowDevs","https:\u002F\u002Fprofiles.wordpress.org\u002Fwowdevs\u002F","\u003Cp>\u003Cstrong>Responsive Visibility for Gutenberg Blocks\u003C\u002Fstrong> is a powerful tool designed to enhance your WordPress site’s flexibility by allowing you to control the visibility of Gutenberg blocks based on the device your visitors are using. With this plugin, you can \u003Cstrong>hide or show blocks\u003C\u002Fstrong> on \u003Cstrong>mobile, tablet, and desktop\u003C\u002Fstrong>, ensuring your content is perfectly optimized for each device type.\u003C\u002Fp>\n\u003Cp>This \u003Cstrong>responsive visibility plugin\u003C\u002Fstrong> gives you complete control over how your content appears across different devices, ensuring a seamless and tailored user experience.\u003C\u002Fp>\n\u003Cp>For a detailed walkthrough, watch this tutorial:\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\u002Fg7My09gTghI?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>In today’s mobile-first world, ensuring your website’s content is optimized for \u003Cstrong>desktop\u003C\u002Fstrong>, \u003Cstrong>tablet\u003C\u002Fstrong>, and \u003Cstrong>mobile\u003C\u002Fstrong> devices is essential. With \u003Cstrong>Responsive Visibility for Gutenberg Blocks\u003C\u002Fstrong>, you can easily decide which blocks appear or disappear based on the device screen size. For example, you may want to showcase a \u003Cstrong>lead generation form\u003C\u002Fstrong> at the top of the sidebar for \u003Cstrong>desktop users\u003C\u002Fstrong>, but place it further down the page on \u003Cstrong>mobile devices\u003C\u002Fstrong>.\u003C\u002Fp>\n\u003Cp>With this plugin, you can fine-tune your \u003Cstrong>Gutenberg blocks visibility\u003C\u002Fstrong> to ensure your site looks amazing and functions flawlessly across \u003Cstrong>all devices\u003C\u002Fstrong>. Improve user engagement and experience by showing only the relevant content for each device type, making your site more intuitive and mobile-friendly.\u003C\u002Fp>\n\u003Ch3>Key Features:\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Cstrong>Control block visibility\u003C\u002Fstrong> for different devices (Desktop, Tablet, Mobile)\u003C\u002Fli>\n\u003Cli>Enhance \u003Cstrong>responsive design\u003C\u002Fstrong> by selectively hiding or showing blocks\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Mobile visibility\u003C\u002Fstrong> customization for Gutenberg blocks\u003C\u002Fli>\n\u003Cli>Improve page load time by hiding unnecessary elements on mobile or tablet\u003C\u002Fli>\n\u003Cli>Seamless integration with \u003Cstrong>Gutenberg editor\u003C\u002Fstrong> and native WordPress blocks\u003C\u002Fli>\n\u003C\u002Ful>\n","🌟 Enhance Your WordPress Site with Responsive Visibility for Gutenberg Blocks",50,1381,80,1,"6.9.4","6.1",[115,116,117,118,101],"block-visibility","device-based-content","gutenberg-addons","hide-show-blocks","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fresponsive-visibility.1.0.6.zip","2026-03-15T10:48:56.248Z",{"slug":122,"name":123,"version":124,"author":125,"author_profile":126,"description":127,"short_description":128,"active_installs":129,"downloaded":130,"rating":28,"num_ratings":28,"last_updated":131,"tested_up_to":112,"requires_at_least":17,"requires_php":132,"tags":133,"homepage":136,"download_link":137,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"post-visibility-control","Post Visibility Control","1.0.1","Fernando Tellado","https:\u002F\u002Fprofiles.wordpress.org\u002Ffernandot\u002F","\u003Cp>Post Visibility Control adds visibility options to posts, pages, and custom post types. Control exactly where your content appears without making it private.\u003C\u002Fp>\n\u003Cp>The plugin integrates seamlessly into the native WordPress interface. In the Block Editor (Gutenberg), you will find the options inside the Status & Visibility popup when you click on the post status. In the Classic Editor, the options appear within the Visibility section of the Publish metabox, right where you would expect them.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Features:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Works with posts, pages, and custom post types\u003C\u002Fli>\n\u003Cli>Four visibility options: Visible, Archive only, Search only, Hidden\u003C\u002Fli>\n\u003Cli>Compatible with both Classic Editor and Block Editor (Gutenberg)\u003C\u002Fli>\n\u003Cli>Hidden content remains accessible via direct URL\u003C\u002Fli>\n\u003Cli>Automatically excludes WooCommerce products (they have their own visibility)\u003C\u002Fli>\n\u003Cli>Lightweight and follows WordPress coding standards\u003C\u002Fli>\n\u003Cli>Translation ready\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Visibility Options:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Visible\u003C\u002Fstrong> – Content appears in archives and search results (default)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Archive only\u003C\u002Fstrong> – Content appears in archives but not in search results\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Search only\u003C\u002Fstrong> – Content appears in search results but not in archives\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Hidden\u003C\u002Fstrong> – Content is hidden from archives and search, accessible only via direct link\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Use Cases:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Hide landing pages from blog archives\u003C\u002Fli>\n\u003Cli>Exclude specific posts from search results\u003C\u002Fli>\n\u003Cli>Create content accessible only via direct links\u003C\u002Fli>\n\u003Cli>Control which posts appear on your homepage\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>How to Use\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>Block Editor (Gutenberg):\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Col>\n\u003Cli>Edit any post or page\u003C\u002Fli>\n\u003Cli>In the right sidebar, look for the “Status” section (usually shows “Draft” or “Publish”)\u003C\u002Fli>\n\u003Cli>Click on the status to open the Status & Visibility popup\u003C\u002Fli>\n\u003Cli>You will see “Visibility Control” options with four radio buttons\u003C\u002Fli>\n\u003Cli>Select your preferred visibility option\u003C\u002Fli>\n\u003Cli>Save or publish your post\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>\u003Cstrong>Classic Editor:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Col>\n\u003Cli>Edit any post or page\u003C\u002Fli>\n\u003Cli>In the Publish metabox (right sidebar), find the “Visibility” section\u003C\u002Fli>\n\u003Cli>Click “Edit” next to Visibility if needed to expand the options\u003C\u002Fli>\n\u003Cli>Below the standard WordPress visibility options, you will find “Visibility Control”\u003C\u002Fli>\n\u003Cli>Select your preferred option from the radio buttons\u003C\u002Fli>\n\u003Cli>Save or publish your post\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>Support\u003C\u002Fh3>\n\u003Cp>Need help or have suggestions?\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fservicios.ayudawp.com\" rel=\"nofollow ugc\">Official website\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fsupport\u002Fplugin\u002Fpost-visibility-control\u002F\" rel=\"ugc\">WordPress support forum\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002FAyudaWordPressES\" rel=\"nofollow ugc\">YouTube channel\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fayudawp.com\" rel=\"nofollow ugc\">Documentation and tutorials\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Love the plugin? Please leave us a 5-star review and help spread the word!\u003C\u002Fp>\n\u003Ch3>About AyudaWP\u003C\u002Fh3>\n\u003Cp>We are specialists in WordPress security, SEO, and performance optimization plugins. We create tools that solve real problems for WordPress site owners while maintaining the highest coding standards and accessibility requirements.\u003C\u002Fp>\n","Control post visibility in archives and search results for all content types.",20,242,"2026-02-11T07:58:00.000Z","7.4",[134,96,21,135,24],"archive","search","https:\u002F\u002Fservicios.ayudawp.com","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fpost-visibility-control.1.0.1.zip",{"attackSurface":139,"codeSignals":279,"taintFlows":306,"riskAssessment":365,"analyzedAt":375},{"hooks":140,"ajaxHandlers":253,"restRoutes":263,"shortcodes":276,"cronEvents":277,"entryPointCount":278,"unprotectedCount":28},[141,147,151,155,157,161,165,169,172,176,179,181,185,190,192,197,200,203,207,211,215,218,222,226,229,232,235,239,243,245,248],{"type":142,"name":143,"callback":144,"file":145,"line":146},"action","admin_init","register_settings","inc\\admin\\class-dashboard.php",27,{"type":142,"name":148,"callback":149,"file":145,"line":150},"admin_menu","menu",28,{"type":142,"name":152,"callback":153,"file":145,"line":154},"admin_notices","migrate_data_notice",29,{"type":142,"name":143,"callback":156,"file":145,"line":37},"handle_migration_action",{"type":142,"name":158,"callback":159,"file":160,"line":154},"add_meta_boxes","add_metabox","inc\\admin\\class-post-hide-metabox.php",{"type":142,"name":162,"callback":163,"file":160,"line":164},"admin_enqueue_scripts","load_admin_assets",37,{"type":142,"name":166,"callback":166,"priority":167,"file":160,"line":168},"bulk_edit_custom_box",10,40,{"type":142,"name":170,"callback":170,"priority":167,"file":160,"line":171},"quick_edit_custom_box",44,{"type":142,"name":173,"callback":174,"priority":167,"file":175,"line":150},"delete_post","clear_post_cache","inc\\class-cache-manager.php",{"type":142,"name":177,"callback":178,"priority":167,"file":175,"line":154},"wp_trash_post","clear_post_cache_by_id",{"type":142,"name":180,"callback":178,"priority":167,"file":175,"line":37},"untrash_post",{"type":142,"name":182,"callback":183,"priority":167,"file":175,"line":184},"transition_post_status","clear_post_cache_on_status_change",31,{"type":142,"name":186,"callback":187,"priority":74,"file":188,"line":189},"pre_get_posts","exclude_posts","inc\\class-post-hide.php",36,{"type":142,"name":191,"callback":191,"file":188,"line":164},"parse_query",{"type":193,"name":194,"callback":195,"priority":167,"file":188,"line":196},"filter","get_next_post_where","hide_from_post_navigation",38,{"type":193,"name":198,"callback":195,"priority":167,"file":188,"line":199},"get_previous_post_where",39,{"type":193,"name":201,"callback":202,"priority":167,"file":188,"line":168},"widget_posts_args","hide_from_recent_post_widget",{"type":193,"name":204,"callback":205,"priority":167,"file":188,"line":206},"query_loop_block_query_vars","hide_from_query_block",41,{"type":193,"name":208,"callback":209,"priority":167,"file":188,"line":210},"render_block_core\u002Flatest-posts","hide_from_latest_posts_block",42,{"type":193,"name":212,"callback":213,"priority":167,"file":188,"line":214},"woocommerce_rest_product_object_query","hide_from_rest_api",48,{"type":193,"name":216,"callback":213,"priority":167,"file":188,"line":217},"woocommerce_rest_product_query",49,{"type":142,"name":219,"callback":220,"file":221,"line":150},"rest_api_init","register_routes","inc\\class-rest-api.php",{"type":193,"name":223,"callback":224,"priority":167,"file":225,"line":164},"wp_sitemaps_posts_query_args","hide_from_wp_sitemap","inc\\class-seo-integration.php",{"type":193,"name":227,"callback":228,"priority":167,"file":225,"line":168},"wpseo_sitemap_exclude_post_type","hide_from_yoast_sitemap",{"type":193,"name":230,"callback":231,"priority":167,"file":225,"line":206},"wpseo_breadcrumb_links","hide_from_yoast_breadcrumbs",{"type":193,"name":233,"callback":234,"priority":167,"file":225,"line":210},"wpseo_link_count_post_types","hide_from_yoast_internal_links",{"type":193,"name":236,"callback":237,"priority":167,"file":225,"line":238},"posts_where","yoast_internal_links_where_clause",146,{"type":142,"name":240,"callback":241,"priority":167,"file":242,"line":154},"dp_duplicate_post","duplicate_post_copy_whp_flags","inc\\class-yoast-duplicate-post.php",{"type":142,"name":244,"callback":241,"priority":167,"file":242,"line":37},"dp_duplicate_page",{"type":193,"name":246,"callback":246,"file":247,"line":154},"zeen_pagination_query","inc\\class-zeen-theme.php",{"type":142,"name":249,"callback":250,"file":251,"line":252},"plugins_loaded","run","whp-hide-posts.php",64,[254,259],{"action":255,"nopriv":256,"callback":257,"hasNonce":258,"hasCapCheck":258,"file":160,"line":206},"whp_bulk_edit_save",false,"save_bulk_edit",true,{"action":260,"nopriv":256,"callback":261,"hasNonce":258,"hasCapCheck":258,"file":160,"line":262},"whp_quick_edit_save","save_quick_edit",45,[264,271],{"namespace":265,"route":266,"methods":267,"callback":269,"permissionCallback":270,"file":221,"line":199},"whp\u002Fv1","\u002Fhide-settings\u002F(?P\u003Cid>\\d+)",[268],"GET","get_hide_settings","closure",{"namespace":265,"route":266,"methods":272,"callback":274,"permissionCallback":270,"file":221,"line":275},[273],"POST","save_hide_settings",59,[],[],4,{"dangerousFunctions":280,"sqlUsage":281,"outputEscaping":292,"fileOperations":28,"externalRequests":28,"nonceChecks":303,"capabilityChecks":304,"bundledLibraries":305},[],{"prepared":37,"raw":34,"locations":282},[283,287,290],{"file":284,"line":285,"context":286},"inc\\core\\class-plugin.php",203,"$wpdb->get_var() with variable interpolation",{"file":288,"line":129,"context":289},"uninstall.php","$wpdb->query() with variable interpolation",{"file":288,"line":291,"context":289},21,{"escaped":14,"rawEcho":278,"locations":293},[294,297,299,301],{"file":145,"line":295,"context":296},249,"raw output",{"file":145,"line":298,"context":296},250,{"file":145,"line":300,"context":296},271,{"file":145,"line":302,"context":296},272,5,9,[],[307,341],{"entryPoint":308,"graph":309,"unsanitizedCount":61,"severity":340},"save_quick_edit (inc\\admin\\class-post-hide-metabox.php:778)",{"nodes":310,"edges":335},[311,316,320,326,329,332],{"id":312,"type":313,"label":314,"file":160,"line":315},"n0","source","$_POST",807,{"id":317,"type":318,"label":319,"file":160,"line":315},"n1","transform","→ get_whp_meta()",{"id":321,"type":322,"label":323,"file":284,"line":324,"wp_function":325},"n2","sink","get_var() [SQLi]",226,"get_var",{"id":327,"type":313,"label":314,"file":160,"line":328},"n3",815,{"id":330,"type":318,"label":331,"file":160,"line":328},"n4","→ add_whp_meta()",{"id":333,"type":322,"label":323,"file":284,"line":334,"wp_function":325},"n5",265,[336,337,338,339],{"from":312,"to":317,"sanitized":256},{"from":317,"to":321,"sanitized":256},{"from":327,"to":330,"sanitized":256},{"from":330,"to":333,"sanitized":256},"high",{"entryPoint":342,"graph":343,"unsanitizedCount":61,"severity":340},"\u003Cclass-post-hide-metabox> (inc\\admin\\class-post-hide-metabox.php:0)",{"nodes":344,"edges":359},[345,347,351,352,353,354,355,357],{"id":312,"type":313,"label":314,"file":160,"line":346},785,{"id":317,"type":322,"label":348,"file":160,"line":349,"wp_function":350},"query() [SQLi]",865,"query",{"id":321,"type":313,"label":314,"file":160,"line":315},{"id":327,"type":318,"label":319,"file":160,"line":315},{"id":330,"type":322,"label":323,"file":284,"line":324,"wp_function":325},{"id":333,"type":313,"label":314,"file":160,"line":328},{"id":356,"type":318,"label":331,"file":160,"line":328},"n6",{"id":358,"type":322,"label":323,"file":284,"line":334,"wp_function":325},"n7",[360,361,362,363,364],{"from":312,"to":317,"sanitized":258},{"from":321,"to":327,"sanitized":256},{"from":327,"to":330,"sanitized":256},{"from":333,"to":356,"sanitized":256},{"from":356,"to":358,"sanitized":256},{"summary":366,"deductions":367},"The 'whp-hide-posts' plugin v2.1.0 exhibits a generally strong security posture, adhering to several good practices. The absence of known CVEs and a clean vulnerability history are positive indicators. The code analysis reveals a robust implementation of security measures, with a high percentage of SQL queries using prepared statements and proper output escaping. Nonce and capability checks are also present for its entry points. \n\nHowever, the taint analysis highlights two flows with unsanitized paths, both classified as high severity. This is a significant concern, suggesting that user-supplied data might be used in a way that could lead to vulnerabilities, even though no specific exploitable issues were identified in this static analysis. The plugin's attack surface, while currently protected, could present future risks if new entry points are added without adequate security checks.\n\nOverall, while the plugin has strengths in its current security implementations and a clean history, the identified high-severity taint flows warrant immediate attention and thorough investigation to ensure they do not lead to actual exploits. The development team should prioritize addressing these unsanitized paths.",[368,371,373],{"reason":369,"points":370},"High severity taint flows with unsanitized paths",15,{"reason":372,"points":61},"Minor portion of SQL queries not using prepared statements",{"reason":374,"points":61},"Minor portion of outputs not properly escaped","2026-03-16T17:31:56.291Z",{"wat":377,"direct":392},{"assetPaths":378,"generatorPatterns":384,"scriptPaths":385,"versionParams":386},[379,380,381,382,383],"\u002Fwp-content\u002Fplugins\u002Fwhp-hide-posts\u002Fassets\u002Fcss\u002Fbackend.css","\u002Fwp-content\u002Fplugins\u002Fwhp-hide-posts\u002Fassets\u002Fjs\u002Fbackend.js","\u002Fwp-content\u002Fplugins\u002Fwhp-hide-posts\u002Fassets\u002Fjs\u002Fbulk-edit.js","\u002Fwp-content\u002Fplugins\u002Fwhp-hide-posts\u002Fassets\u002Fjs\u002Fquick-edit.js","\u002Fwp-content\u002Fplugins\u002Fwhp-hide-posts\u002Fassets\u002Fjs\u002Ffrontend.js",[],[],[387,388,389,390,391],"whp-hide-posts\u002Fassets\u002Fcss\u002Fbackend.css?ver=","whp-hide-posts\u002Fassets\u002Fjs\u002Fbackend.js?ver=","whp-hide-posts\u002Fassets\u002Fjs\u002Fbulk-edit.js?ver=","whp-hide-posts\u002Fassets\u002Fjs\u002Fquick-edit.js?ver=","whp-hide-posts\u002Fassets\u002Fjs\u002Ffrontend.js?ver=",{"cssClasses":393,"htmlComments":397,"htmlAttributes":398,"restEndpoints":401,"jsGlobals":404,"shortcodeOutput":408},[394,395,396],"whp-hide-post-wrapper","whp-hide-post-bulk-edit-wrapper","whp-hide-post-quick-edit-wrapper",[],[399,400],"data-whp-id","data-whp-meta-key",[402,403],"\u002Fwp-json\u002Fwhp\u002Fv1\u002Fget-metas","\u002Fwp-json\u002Fwhp\u002Fv1\u002Fsave-meta",[405,406,407],"whp_vars","whp_bulk_vars","whp_quick_vars",[]]