How to Show Menu Items to Specific Users in WordPress


Guests see "Login", clients see "Client area" and "Logout", resellers see "Price lists".
Give every visitor the menu that fits them, straight from Appearance → Menus, without code or duplicate menus.

WordPress navigation menu showing different items to a guest and to a logged-in client

Quick answer: WordPress menus show the same items to everyone. With PrivateContent every menu item gets a visibility field:

  1. go to Appearance → Menus and expand a menu item
  2. choose who can see it: guests, any logged-in user or specific user categories
  3. save the menu: each visitor now sees only the items meant for them

Why one menu for everyone doesn't work

As soon as your site has a private area, a single menu creates problems:

  • guests click "Client area" and hit a login wall, which feels broken
  • logged-in users still see "Login" and "Register", which is confusing
  • links to member-only sections reveal what exists behind the login
  • different groups (clients, resellers, staff) need different shortcuts

Creating a separate menu for each case and swapping them with code is fragile, and every theme handles it differently.

How menu visibility works in PrivateContent

PrivateContent adds a restriction field to every item in Appearance → Menus. You keep one menu and decide, item by item, who sees it. The menu stays the one your theme already displays, so it also works with header builders and menu widgets that use WordPress menus.

Menu itemGuestsClientsResellers
Home, Products, Contact✅✅✅
Login, Register✅⛔⛔
Client area, My documents⛔✅⛔
Price lists⛔⛔✅
Logout⛔✅✅

See it live: log in to the PrivateContent demo with the test accounts and watch the site change, or start your free 7-day trial.

Step 1: set visibility on each menu item

  1. Go to Appearance → Menus and select your main menu
  2. Expand the item you want to restrict: you'll find the PrivateContent field below the standard options
  3. In Which PrivateContent user categories can see this menu item? choose Unlogged Users (guests only), Any logged user, or one or more user categories. Leave it empty to show the item to everyone
  4. Click Save Menu

The field is attached to existing items: when you add a new item, save the menu first, then set its visibility.

WordPress Appearance Menus screen with an expanded menu item and the PrivateContent visibility field
The visibility field on a menu item

Step 2: add login and logout links

  • Login: add your login page (the one with [ pc-login-form]) and make it visible to guests only
  • Register: add your registration page and make it visible to guests only
  • Logout: add a Custom Link with the URL https://yoursite.com/?pc_logout and make it visible to logged-in users only. Adding ?pc_logout to any URL of your site logs the user out
  • My page: link the reserved page where each user finds their own content

Step 3: build menus for each user group

Use user categories to give each group its own shortcuts. A few examples:

  • Clients: Client area, My documents, Support
  • Resellers: Price lists, Orders, Marketing material
  • Students: Course material, Schedule, Grades
  • Staff: Internal procedures, Team files

Since a user can belong to several categories, they'll see every item allowed for any of their categories. Building a complete private area? Follow how to create a private client portal in WordPress.

Hide the link and lock the page

The menu field only controls the link. For a private page, do both:

  • lock the page with the Redirect restriction: whoever isn't allowed is sent to your login page, and the page is removed from site search, archives and post lists
  • hide its menu item with the same user categories, so nobody sees a link they can't open

Widgets and page sections

The same logic works beyond menus:

  • Widgets: show or hide sidebar and footer widgets by user category
  • Gutenberg blocks and Elementor elements: set visibility on single blocks, for example a "Become a reseller" banner only for guests
  • Any content: wrap it in [ pc-pvt-content allow="all"]...[ /pc-pvt-content] to show it to logged-in users only

Frequently asked questions

Can I hide a menu item from logged-in users?

Yes. Set the item to be visible to guests only: it's the classic setup for Login and Register links.

Do I need a separate menu for each user group?

No. You keep one menu and set visibility on each item. Every visitor sees only the items meant for them.

Does hiding a menu item protect the page?

No, and that's true for any menu plugin: hiding a link doesn't lock the page behind it. To protect the page too, lock it with PrivateContent's Redirect restriction and give its menu item the same user categories.

Does it work with my theme's header?

Yes, if the header displays a menu created in Appearance → Menus, which is the case for most themes and page builder menu widgets.

How do I add a logout link to the menu?

Add a Custom Link with your site URL followed by ?pc_logout, for example https://yoursite.com/?pc_logout, and make it visible to logged-in users only.

Can I try it before buying?

Yes. You can request a free 7-day trial license and build your portal on your own site. Every purchase is also covered by a money-back guarantee.

Certified sales
1 K
4.7 / 5 stars on 670+ ratings
Rated 4.7 out of 5

Let's get in touch!

Features list