Hide Posts
Hide Posts
Description
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.
Features:
- Hide posts on specific archives and pages (home, categories, search, tags, authors, date, blog page, etc.)
- Hide posts from RSS Feed and REST API
- Hide posts from XML sitemaps (WordPress core and Yoast SEO)
- Hide posts from Yoast SEO breadcrumbs and internal link suggestions
- Full Gutenberg Block Editor support with metabox in sidebar
- Works with Gutenberg Query Loop and Latest Posts blocks
- Custom Post Types support – enable hide functionality for any post type
- WooCommerce integration – hide products on store page, category pages, and REST API
- Bulk Edit and Quick Edit support for efficient management
- Custom database table for optimized performance
- Comprehensive caching for fast page loads
Installation
Installation and uninstallation are extremely simple. You can use WordPress’ automatic install or follow the manual instructions below.
Installing:
- Download the package.
- Extract it to the “plugins” folder of your WordPress directory.
- In the Admin Panel, go to “Plugins” and activate it.
- Go to Settings -> Hide Posts to enable the hide functionality for additional post types beside ‘post’.
Uninstalling:
- In the Admin Panel, go to “Plugins”, deactivate the plugin and click “Delete”.
Usage:
Using this plugin is simple. Once it has been activated, navigate to Settings -> Hide Posts and select additional post types for which
you want to use the Hide functionality. The functionality is enabled by default for ‘Posts’ and cannot be disabled for that type post.
If you need any additional help fell free to contact me at martin@martincv.com for more information.
Screenshots
Faq
Thanks, donations help us to continue improving our plugins. Read More About Donations.
This is possible. This functionality is not free. You can contact me at martin@martincv.com for more information and send the name of the plugin you want to migrate from.
Reviews
Plugin Affected SEO After WordPress Update
By cupidsalman on May 28, 2025
I have been using the "Hide Posts" plugin by MartinCV for approximately 1.5 years, and up until recently, it has been a useful tool for managing which posts to display on my WordPress site. The ability to hide posts on the front page, archive pages, blog page, recent posts widget, and even on single post pages has been very beneficial for customizing my content visibility.
However, after upgrading my WordPress version to 6.8.1 on April 30, 2025, I have noticed a significant negative impact on my site's SEO performance. The plugin seems to no longer function properly, which has led to some of my posts being improperly hidden or displayed. This disruption has caused me to lose visibility in search engines, and I’ve seen a noticeable decline in traffic as a result.
I use the following settings with this plugin:
- Hide on frontpage
- Hide on archive page (including any custom taxonomy archive pages)
- Hide on blog page (selected in Settings → Reading)
- Hide from recent posts widget
- Hide on single post page (including recent posts, related posts, and any other widget shown on the single post page)
I hope to see improvements in future updates, as this plugin has been incredibly useful in the past. However, without a fix or update to address this issue, it is currently hindering my site's performance.
Looking forward to seeing improvements soon.
Best regards,
Salman Khayam
Perfect Right Out of the Box; Does Not Affect SEO
By jerome21z on April 8, 2025
Perfect. It does exactly what it says, and it offers lots of display options. It also doesn't affect SEO because I can see my posts in the xml sitemap after hiding it from the archive.
I needed to hide alphabetical posts from search results
By brooklynfox on September 3, 2024
I made 20 something posts with lists of links by town/city. The links would then go off to the various towns and city pages. For some reason when I searched for a town in search the new alphabetical posts would show but not keeping any width settings unlike the other post listings. It broke the look of the page and the dreaded horizontal scrollbar appeared with a long horizontal list of the link text. I tried to fix it but could not so thought maybe I could hide those posts from the search results and went looking.
As you will all know looking for plug ins is not an exciting journey so I was not thrilled. However I was lucky enough to find this plug in first search and it works EXACTLY as it says it does, which IME is weird for a plug in! So after simply checking a box my problem is solved and all the annoying posts are hidden from search.
There are a tonne of other free options for the plug in but this is all I needed...for now:)
Well done developer, your plug in is making a difference and is very cool!
Amazing and updated
By (DjiXas) on October 4, 2023
Thank you
Perfect
By godbeloved on September 21, 2022
Works as said. No issues so far.
By bgmsquad on February 15, 2022
Users beware, deleting menus
By Nathan (nhadsall) on February 9, 2022
Magnificent
By otacke on January 6, 2022
XML Sitemaps?
By d. (pxlar8) on July 20, 2021
It works as expected
By hujuice on January 30, 2021
Changelog
2.1.0
Release Date – 24 November 2025
Major Update: Gutenberg Block Editor Support & Custom Database Architecture
New Features
- Full Gutenberg Block Editor Support – Complete React-based sidebar panel with live checkboxes
- Custom REST API Integration – Dedicated REST endpoints for Gutenberg editor (
/whp/v1/hide-settings/{id}) - Select All / Deselect All Buttons – Quick bulk selection in Gutenberg sidebar
- Custom Database Table Architecture – All data stored in
wp_whp_posts_visibilitytable (NO wp_postmeta usage) - Smart Metabox Detection – Classic Editor metabox hidden in Gutenberg to avoid confusion
- SEO Plugin Integration – Hide posts from WordPress XML sitemap, Yoast SEO sitemap, breadcrumbs, and internal link suggestions
- Gutenberg Query Loop Block Support – Hidden posts properly excluded from Query Loop blocks
- Latest Posts Block Support – Hidden posts excluded from Gutenberg Latest Posts block
- Complete Bulk Edit & Quick Edit – Full AJAX functionality for efficient bulk operations
- Migration Notice Improvements – Only shows when legacy data exists with clear migration path
Gutenberg/Block Editor Enhancements
- React-based sidebar panel using WordPress
@wordpress/pluginsAPI - Real-time checkbox state management with React hooks
- Auto-save when clicking Update/Publish (integrated with Gutenberg save cycle)
- Conditional field display (CPT, WooCommerce, Yoast options shown only when relevant)
- WordPress 6.6+ compatibility (
wp.editor.PluginDocumentSettingPanel) - Backward compatibility with older WP versions (
wp.editPostfallback)
Performance Improvements
- 95%+ Faster Migration – Bulk INSERT…SELECT queries instead of individual inserts
- 70% Fewer Database Queries – Custom table optimized with indexes instead of postmeta searches
- Intelligent Cache Invalidation – Only clears changed conditions (80-95% more efficient)
- Object Cache Integration – Full wp_cache support with transient fallback
- Optimized Data Retrieval – Single query fetches all hide settings per post
Security Enhancements
- SQL Injection Prevention – All table names escaped with
esc_sql(), all queries use prepared statements - REST API Permission Checks – Proper
current_user_can()validation on all endpoints - Race Condition Protection – Migration uses transient locks to prevent concurrent execution
- Autosave Protection – Metabox save skipped for WordPress autosaves
- Input Validation – Whitelist validation for bulk edit actions
- Nonce Verification – Separate handling for Classic Editor (nonce required) and Gutenberg (REST API)
Bug Fixes
- Fixed Gutenberg checkbox values all saving as false (React state dependencies issue)
- Fixed Classic Editor metabox appearing in Gutenberg (causing confusion)
- Fixed undefined variable bug in fallback logic
- Fixed migration notice appearing on fresh installations
- Fixed duplicate key errors in custom table (added existence checks)
- Fixed cache invalidation to be condition-specific instead of global
- Added comprehensive database error checking and logging
Technical Improvements
- Custom REST API Class – Dedicated
REST_APIclass handles all Gutenberg endpoints - React State Management – Uses
useState,useEffect,useSelecthooks properly - Database Table with UNIQUE Constraints – Prevents duplicate entries at database level
- Comprehensive Error Logging – Clear messages for debugging database and save issues
- WordPress Coding Standards – Improved code quality and compliance
- Enhanced PHPDoc Documentation – Better inline documentation throughout
- Cleaner Uninstall Process – Removes all plugin options and custom table
Compatibility
- Tested with WordPress 6.7+
- Fully compatible with Gutenberg Block Editor
- Compatible with Classic Editor plugin (when installed)
- Compatible with Yoast SEO (all versions)
- Compatible with WooCommerce
- PHP 7.3+ required
Developer Notes
- Custom database table:
wp_whp_posts_visibility(post_id, condition, UNIQUE constraint) - REST API endpoints: GET/POST
/whp/v1/hide-settings/{post_id} - Data stored ONLY in custom table (wp_postmeta used only for migration fallback)
- Gutenberg script:
/assets/admin/js/whp-gutenberg.js(React-based) - All database queries use prepared statements
- Comprehensive caching with wp_cache and transients (WEEK_IN_SECONDS TTL)
2.0.3
Release Date – 12 January 2024
- Added support for Yoast Duplicate Post to clone the hidden flags over to the new copy
= 2.0.2
Release Date – 30 December 2024
- Updated frontpage / homepage query condition
2.0.1
Release Date – 27 December 2024
- Small updates on the displaying of the flags in admin.
2.0
Release Date – 27 December 2024
- Added custom database table to hold the hide post flags.
- All new Hide flags on posts will be saved in the new database table. A fallback to old data is also added in case the old data is not yet migrated to the new table.
- Added option to migrate the old data from wp_postmeta table to the new table.
1.1.1
Release Date – 05 October 2022
- Bug fix related to checkbox not checked when enabling Hide posts on signle post page.
1.1.0
Release Date – 02 September 2022
- Added option to hide posts on the single post page. This option will hide posts shown in any widget, block (related posts, recent posts etc) on the single post page.
1.0.3
Release Date – 01 September 2022
- Bug fix with conditional logic on when to modify meta query.
1.0.2
Release Date – 20 February 2022
- Hide WooCommerce Product from REST API bug fix.
1.0.1
Release Date – 13 February 2022
- Bug fix. Added check for enabled post type for REST API Hide.
1.0.0
Release Date – 07 February 2022
- Code base optimized and refactored.
- Added option to hide CPT on their own archive page.
- Added option to hide any post type on archive page other than category, tag. Ex: Custom Taxonomy archive page.
- Added option to hide posts in REST API calls.
- Added option to hide Woocommerce Products in REST API calls.
0.5.4
Release Date – 26 December 2021
- Added option to hide posts on the default WordPress Recent Posts Widget
(NOTE: This option will not work on the Latest Posts Gutenberg block. The feature can be tracked here core.trac.wordpress.org/ticket/54580) - Added compatibility with Zeen Theme Load More functionality
0.5.3
Release Date – 15 August 2020
- Fixed jQuery Migrate Helper warning showing in console
0.5.2
Release Date – 12 August 2020
- Added option to select all hide options in post metabox
- Add new column in posts list table that shows on which pages the post is hidden
- Added option in Settigns -> Hide Posts to disable the showing of the said column
0.5.1
Release Date – 19 May 2020
- Added option to hide posts default WordPress post navigation
- Fix for hiding menu items bug
0.5.0
Release Date – 17 April 2020
- Removed option to hide post from REST API added in version 0.4.3 due to conflict with Guttenberg save / update post.
The conflict happens because Guttenberg is using the REST API to save post and load additional data the hide post on REST API was causing conficts with the data.
0.4.4
Release Date – 14 April 2020
- Added option to hide post on date archive page
0.4.3
Release Date – 06 April 2020
- Added option to hide posts from REST API all posts query: /wp-json/wp/v2/posts/
Note: Single post entry in REST API remains available /wp-json/wp/v2/posts/[post_id]
0.4.2
Release Date – 13 February 2020
- Bug fix
0.4.1
Release Date – 13 February 2020
- Workaround added for issue showing warnings when is_front_page() function is called in pre_get_posts filter. This is related to wordpress core and can be tracked at #27015 and #21790
0.4.0
Release Date – 21 December 2019
- Added option to hide posts on the blog page as selected in Settings -> Reading (Posts Page)
0.3.2
Release Date – 13 December 2019
- Bug fix for checking if Woocommerce is active on mutlinetwork site
0.3.1
Release Date – 07 December 2019
- Added option to hide posts in RSS Feed
- Added options to hide Woocommece products on Store (Shop) page and on Product category pages
0.2.1
Release Date – 13 November 2019
- Compatibility checkup with WordPress 5.3
- Added option to enable the Hide Post functionality for additional post types (Check Settings -> Hide Posts)
- Added uninstall.php file to clean up options and post meta added by the plugin
0.1.1
Release Date – 05 September 2019
- Code and compatibility updates.
- Added translateable strings.
0.0.1
Release Date – 11 October 2017
- Public release of ‘WordPress Hide Posts’


