[wp-hackers] hide specific nav items from public users

Lionel Pointet lionel.pointet at globalis-ms.com
Wed Jun 27 13:28:15 UTC 2012

Hi Ryann,

You're right, there are in fact 2 (maybe more?) filters that lets you do 
what you want with the items to be displayed in a nav menu (supposing 
you use the wp_nav_menu function):

 1. wp_get_nav_menu_items:
 2. wp_nav_menu_objects

You get an array of "item" objects which are globally "post" objects but 
with some more attributes...

Hope that helps.

Le 27/06/2012 15:20, Ryann Micua a écrit :
> Hi, can you guys help me with this thing I want to do?
> So I created this metabox for pages. This metabox has a checkbox "Show 
> to logged in users only". If it's checked, this page should be seen 
> only by logged in users.
> I then added this page to the main menu using wp's menu editor.
> I can handle the checks in the page template. What I'd like to do 
> though is to be able to "hide" the page from the main nav if the user 
> is not logged in - even if I added it to the main menu.
> I could probably hunt for the right filter somewhere but I figured 
> it'd be faster to ask for help from the gurus :) Is there like a 
> filter similar to the "the_posts" filter which gives an array of post 
> objects queried from the database? I sometimes use this filter to hide 
> posts from non-logged in users, so I was hoping there'd be a similar 
> filter in place for nav items which would be useful for modifying the 
> items just before they're displayed..
> Thanks so much for your help!

More information about the wp-hackers mailing list