If you’ve downloaded a WordPress theme that has been made available to the general public, it is likely that, by default, it has some code that automatically inserts your WordPress pages directly into your theme without any manual coding. This is a really great feature most of the time, but sometimes there are certain pages you’d like to not display in your menu or not display at all (search results page comes to mind).
Here is how the menu code probably looks in your theme:
<?php wp_list_pages('sort_column=menu_order&depth=1&title_li=');?>
If you have a individual page you’ve created, but don’t want to display it in your blog’s menu, you simply need to add an exclude command and the page number (this can be found on Manage -> Pages) to your existing code. Here is how the same code would look if I was excluding page 55:
<?php wp_list_pages('depth=1&sort_column=menu_order&exclude=55&title_li=' . __('') . '' ); ?>
If you’d prefer to exclude more than one page, you can do so by simply adding a comma between each page number like so:
<?php wp_list_pages('depth=1&sort_column=menu_order&exclude=55,422&title_li=' . __('') . '' ); ?>
This code will exclude pages 55 and page 422 from your page menu.
Any other questions? Feel free to post them below.













I know there is no built in feature for this request, but I am determined to find a way to exclude a category from wp_list_pages.
From all the research so far I know that you can use a var, like:
wp_list_pages(‘exclude=’ . $whatever);
But I am not sure how to load that var with a list of page ids from a category.
So basically I am asking if there is a way to return a list of page ids in a category. Any ideas anyone?
Thanks in advance!
Thanks for this – it’s exactly what i’ve been looking for. I want to hide some pages from the top menu on my blog (otherwise it will look too busy there) and show instead all pages on the side.
BTW, your sitemap isn’t working.
Thanks for this tweak! I just got rid of the poll archive from my menu.
Is there a similar way to limit a search to only a few categories? I need to two different searches in a site…one of them should only echo results from a specific category. I would appreciate any help!!!
@ Mark – Good question. The only thing that comes to mind is to use the WordPress default search engine, then also add a Google Custom Search Engine (GCSE) with the specified categories only.
Not 100% sure that would work, but might be worth looking into!
Why not just save the page as a draft? It hides the page from the menu, but you can link directly to it…
Hi,
I know you posted this a while back, but I was wondering if you were able to figure out how to do this? I tried making the post as draft and only using the link. As the owner of the site I can access the page through the link but obviously other people can’t. If you can help me, that would be great! Thanks!
There is actually a wordpress plug-in for all of this to hide the page(s).
http://www.instinct.co.nz/hide-pages-plugin/
http://wordpress.org/extend/plugins/wp-hide-post/
Just in case one link doesn’t work the other should.
thnx dude =) works perfectly by adding &exclude inside the parameter.
Great post, but how do you find the page number ? my pages have names
thank you
visit your dashboard pages, and instead of clicking on the actual page to “edit” hover over the word “edit” and you will see the number of your page in the bottom bar of your browser.
Thank you so much! This worked perfectly!
Thanks! Very helpful..
)
Exactly what I wanted!
Thanks for sharing this, I have been going mad trying to figure it out, Sally
Hi there. I am using a WordPress template which doesnt have the function and I also installed a Exclude page plugin by Simon Wheatley and followed the instructions but the child pages still show up on header and I am not able to exclude those! Please help! Thanks
Satish
This didn’t work.. I couldn’t find the section to put this code in! and the plugin above did not work either.
Why do you just say “page number (this can be found on Manage -> Pages) to your existing code.” WHERE do you enter the code.. why don’t you just say this??
I was racking my brains on exactly this same issue. How do I create a page that is not visible in the menu.
The reason for that was I wanted to create a downloads page but capture the details of who was getting to the downloads page beforehand. And didn’t want the downloads page to be visible in the menu directly.
Will give this a go today evening
Thanks guys.
Ashish.
Hi there,
To be concise, I have several pages that I haven’t done working on. I have to hide them from visitor, but I need the visitor to know that the pages exist. What I want is to create those undone pages to be listed in the navigation menu, only without links. I’ve found out many ways to disable link to parent pages, but I didn’t manage to find how to disable individual links (not only parent links). The works well to prevent the page from being enlisted in the navigation. But what I desire here is to only disable the link and keep the title of the page enlisted.
I hope my explanation is quite clear. My English is not good.
Thank you in advance for the enlightement.
You legend!! This is one of the most simple but useful Plugins I have come across. I just wish I had found it several hours of wading through code ago. Nice one
This was exactly what I’ve been looking for. I’m not at all a programmer but knew there had to be a way to do this! I was using a theme that had single level tab links across the top but I wanted to choose which tabs would be on top. I found the “wp_list_pages” code mentioned above was located in the header.php file of my theme. It worked like a charm!
Thank you again to people who are willing to take a few minutes and share what they know. You’ve saved me days and days of troubleshooting!
Note: Before I made any changes I made a backup copy of the functioning code first!
Nice post
This is a really usefull feature you have presented here, and I want to use it.
I am not a programmer and dont know where to find the lines you are talking about, so I can meke the exclusion.
Could you please show me?
Best regards
kim
Thanks, didn’t know it was so easy to hide a page.
Hey,
You can also use the below plugin which adds a tick box when creating the page asking if you want the page to be visible.
http://wordpress.org/extend/plugins/exclude-pages/installation/