A cluttered homepage or blog archive can overwhelm visitors. Displaying every single post isn’t always ideal, especially if you have announcements, landing pages, or other content not meant for general browsing.
There is the option to make WordPress posts password protected or private. However, in some cases, we find that it’s better to simply hide the post from your homepage while still allowing others to view it if they have the direct link.
In this article, we’ll show you how to hide posts from selected pages in WordPress such as homepage, category archives, search results, and more.
We’ll go over two different methods for hiding posts from the homepage. You can use the quick links below to jump straight to the method you want to use:
Method 1. Hide a WordPress Post from Homepage Using a Plugin
This method is easier, and it’s recommended for beginners.
The first thing you need to do is install and activate the WordPress Hide Posts plugin. For more details, see our step by step guide on how to install a WordPress plugin.
Once the plugin is activated, go ahead and edit the post you want to hide. You will notice a new ‘Hide Posts’ section in the right column of the editor.
Clicking on it will reveal the plugin options. You can hide the post on the front page and blog page, category or tag pages, author page, and site search results.
Simply select the options you like and then save your post.
Depending on the options you selected, you can now visit those pages and that particular post will not be listed.
All users who have the direct post URL (permalink) can still see it by entering the URL.
While this method is the easiest, it lacks several powerful options.
For example, you cannot hide a page or a custom post type like a WooCommerce products. It also does not have an option to hide a post from WordPress RSS feed.
Method 2. Manually Hide WordPress Posts and Pages
This method requires you to add code to your WordPress site. If you haven’t done this before, then see our guide on how to copy and paste code snippets in WordPress.
WordPress uses a database query to fetch and display posts based on the page a user is viewing. It also provides built-in hooks to modify the query before running it.
We will use those hooks to modify the WordPress query and hide the WordPress posts, pages, and custom post types in different sections.
You can add custom code using a code snippets plugin, which is the safest option and does not break your site. Alternatively, you can add the custom code to your theme’s functions.php file or a site-specific plugin.
You will also need the IDs of the post or pages that you want to hide. We have a quick tutorial on how to find a post ID in WordPress that shows how to get this information.
Basically, you can just edit a post or page to view its ID in your browser’s address bar.
That being said, let’s dive into the code part.
Hide WordPress Posts or Pages from Homepage
The following code uses is_home() conditional tag to find out if the user is viewing the homepage. If they are, then it excludes the post IDs from the query.
function wpb_exclude_from_home($query) {
if ($query->is_home() ) {
$query->set('post__not_in', array(1737, 1718));
}
}
add_action('pre_get_posts', 'wpb_exclude_from_home');
Don’t forget to replace the IDs inside the array with the actual IDs of posts or pages that you want to exclude.
Again, we recommend using a code snippets plugin like WPCode to easily and safely add this code in WordPress.
To get started, you’ll need to install and activate the free WPCode plugin. For instructions, see this guide on how to install a WordPress plugin.
Once the plugin is activated, click on the Code Snippets menu item from your WordPress dashboard. Then, click the ‘Add New’ button.
Next, find the ‘Add Your Custom Code (New Snippet)’ option and click on the ‘Use snippet’ button underneath it.
From there, you need to select ‘PHP Snippet’ as the code type.
Now, you’ll be taken to the ‘Create Custom Snippet’ page. You can start by adding a title for your snippet. This can be anything that helps you remember what the code is for.
Then, simply paste the code from above into the ‘Code Preview’ box.
After that, switch the toggle from ‘Inactive’ to ‘Active’ and click the ‘Save Snippet’ button.
Next, we’ll show you some additional options for hiding WordPress posts or pages. You can follow the same steps as above to add these code snippets in WordPress using WPCode.
Hide WordPress Posts or Pages from RSS Feed
If you want to hide a WordPress post from the homepage as well as the WordPress RSS feed, then you can simply use the is_feed conditional tag in the code.
function wpb_exclude_from_feed($query) {
if ($query->is_feed() ) {
$query->set('post__not_in', array(1737, 1718));
}
}
add_action('pre_get_posts', 'wpb_exclude_from_feed');
Now, if you are logged in as an administrator and tried to visit your WordPress RSS feed, then you will still see the posts listed there. Other users will not be able to see the excluded posts when they view your RSS feed.
Hide WordPress Post or Page from Site Search
What if you wanted to hide specific posts from WordPress site search? To do that, you’ll simply need to add the is_search conditional tag to the code.
function wpb_exclude_from_search($query) {
if ( $query->is_search() ) {
$query->set('post__not_in', array(1737, 1718));
}
}
add_action('pre_get_posts', 'wpb_exclude_from_search');
You can now visit your website and search for the posts you wanted to hide. Even though these posts are public, they will not appear in search results.
Hide WordPress Post or Page from Archives
How about hiding specific WordPress posts or pages from archive pages like category, tags, and date archives? To do that, we will use the is_archive() conditional tag.
function wpb_exclude_from_archives($query) {
if ( $query->is_archive() ) {
$query->set('post__not_in', array(1737, 1718));
}
}
add_action('pre_get_posts', 'wpb_exclude_from_archives');
Hiding WordPress Post or Page from Everywhere
So far, we have learned how to hide a WordPress post or page from specific areas. Now, what about completely hiding a WordPress post from all these areas at once?
To do that, you can combine all the conditional tags we have used earlier in a single code snippet.
function wpb_exclude_from_everywhere($query) {
if ( $query->is_home() || $query->is_feed() || $query->is_search() || $query->is_archive() ) {
$query->set('post__not_in', array(1737, 1718));
}
}
add_action('pre_get_posts', 'wpb_exclude_from_everywhere');
This code will hide the given posts from homepage, RSS feed, search results, and archive pages.
Controlling Content Visibility in WordPress
You can hide WordPress posts or pages using the two methods we described above. But, before you go, we’ll also answer some of the most frequently asked questions about content visibility control options in WordPress.
Do these methods perfectly hide content?
No, they don’t.
For example, search engines may have already crawled and indexed the post before you can hide it. If you want to prevent search engines, then see our guide on how to hide a WordPress page from Google.
This also will not work if a WordPress plugin uses a custom query that skips your checks and reveals the content you are trying to hide.
A better approach would be to password protect a post so that only users with the password can view it.
You can also create a private post which is only visible to the administrators, editors and authors on your website.
Can I use these methods to create content for specific users?
No, these methods do not allow you to efficiently share content with specific users. A better approach would be to use a WordPress membership plugin.
Membership plugins like MemberPress allow you to create and publish restricted content. You can even sell subscription plans to access premium content.
For more details, see our guide on how to create a WordPress membership website with step by step instructions.
We hope this article helped you learn how to hide a WordPress post from the homepage and other areas of your website. You may also want to see our guide on how to make a WordPress site completely private or our expert picks of the best popular posts plugins for WordPress.
If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.
Jiří Vaněk
Thanks for the plugin tip. I personally use the Category Excluder plugin, but it removes the entire category from the homepage, and that doesn’t always work for me. I will try your plugin so that I don’t always have to select the whole category but only an individual article. That suits me much better.
Amit
Hiding a post with this plugin, does it prevent search engine from crawling and indexing the post? Does it prevent the post’s google search?? Please let me know.
WPBeginner Support
No, it would not, this would be for excluding the post from your home page, not preventing it from being crawled.
Admin
Najeeb Mirani
Very helpful, thank you!
WPBeginner Support
You’re welcome
Admin
Rakesh
Is there any way to hide specific post from only home page latest post section but not from sidebar recent post widget?
WPBeginner Support
It sounds like you would want to use the plugin method from the article.
Admin
Dale
This plugin no longer works. I have been searching for an alternative but haven’t found one yet. Would love an update to this post.
WPBeginner Support
Thank you for letting us know, we will certainly take a look at this plugin and update this article.
Admin
Gino
Plugin no longer works for recent and latest Wordpress updates. Time to update this article!
WPBeginner Support
Thank you for letting us know, we will be sure to take a look into alternatives.
Admin
Sheila
I would be interested in an alternative too. This plug in sounded like exactly what I needed.
Kelsey
I would just use the PHP snippet mentioned above and post it in your child theme functions.php file. That’s what I did to hide my post.
Daniel
My only gripe is that the category post count in my category menu is incremented, even though the post can’t be shown this way. . Other than that, it is perfect.
Adri
Very helpful, thank you!
Dada
Hi, is google still can index the hidden post? Because i still want people can search my post on google search but not show on frontpage?
Raj
how to remove page 1 2 3 4 5 6 7…………last from homepage
campbell
Hi, I am wanting to keep my blog posts visible on my blog page but hidden/removed on my homepage. I downloaded the plugin and followed the instructions. When I checked “hide from front page” my blog post was removed from my blog page and not the homepage, so the opposite of what I want. How can I achieve this? Thanks!
ted bergman
Thank you for this incredibly valuable site! When I need to know how to do something in Word Press, I first come here. You usually have the best and easiest to understand answer.
Gregory
Works just like the tutorial says. WP 4.8
Jason
The issue with the plugin is that if you want to have a category page show posts, then you have to leave that unchecked and “recent posts” will then pick it up and show up in all your side bars and footers
Munna Hossain
This is really a great plugin. It works for me. But I don’t know why the authority doesn’t update this plugin. It still working properly.
Thanks for your excellent artcle.
coated pill
Is there another way to hide particular post since this is not working in my end .
A simple tutorial might help too if I need to alter on some codes on the themes .
Thanks
Mario von Gollaz
The thing is that there is no real alternative to WP Hide Post. Or is there an alternative? Also WP Hide Post seems to be quite outdated (not updated since quite a while).
Shakir Hassan
Hi,
I’ve hide one of my blog posts from my Homepage, but still, it’s showing on Related Post section area below other blog posts.
What should I do to get rid of it?
WPBeginner, your answer is needed.
Thanks.
Scott
Another option isn’t too hide it per se but to re-schedule it to publish on a later date. I think that will effectively do the same thing…at least it did on my site just now.
Allie Mackin
I did what Scott suggested rescheduled the post for a later date. I went through the trouble of downloading and installing this app and it did not work. When I all I had to do is reschedule for a future date. Mission accomplished sans app.
Roshan Roy
how to filter those posts which was hide by WP HIDE POST plugin in admin panel.
Stephen Walker
Comment by:
Just the answer I had been looking for.
Thank You wpBeginners
Dawn Cunnane
I really needed this to hide one post from the categories menu and it worked like a charm, thank you!
TW
This plugin has not been updated in 2 years. Surprised you are recommending it.
Arevico
This is a perfect example of something I would rather have in the WordPress core than in the plugin domain. Normally, I develop my own themes and solve this by using categories. f.e how shows only most recents posts in the category ‘home’ or not in the category ‘invisible’ ,etc. This plugin help a great deal when you don’t develop your own the,e
Brian Jackson
I agree Arevico. This should definitely be part of WordPress core by now. An example just this week… I run a marketing blog, but I am doing a review on a standing desk. Since it is a little outside of my niche of readers I am publishing it without having it show up on the homepage. I want to rank for it, but don’t want to lose readers.