How to control menu item visibility by user role in WordPress
Advance Menu Manager gives you a clutter-free interface to view, add, and organize your WordPress menu items. Beyond basic menu editing, it lets you control exactly who sees each link — everyone, only logged-in users, only logged-out users, or specific user roles.
This is useful when your site has different types of visitors. For example, you can hide a "My Account" link from logged-out visitors, or show an "Admin Tools" link only to Administrators and Editors, keeping the menu relevant to whoever is viewing it. This won't work inside the Site Editor's Navigation block.
In The Article
Benefits
Controlling menu visibility by role can help:
- Keep menus clean by hiding links that don't apply to a visitor
- Restrict admin-only or member-only links from public view
- Personalize navigation for different customer or staff roles
How to Control Menu Item Visibility
Step 1: Open the menu item settings
Go to Dotstore Plugins → Advance Menu Manager, and click on the menu item you want to control. This expands the item's settings panel.
Step 2: Choose who can see the link
In the expanded panel, find the Who can see this link? dropdown. Select one of the following:
| Option | What it does |
|---|---|
| Everyone | Link is visible to all visitors, logged in or not |
| Logged Out Users | Link only shows to visitors who are not logged in |
| Logged In Users | Link only shows to visitors who are logged in |
Step 3: Select specific roles (if applicable)
If you chose Logged In Users, a new section labeled Choose which roles can see this link appears below the dropdown. Check the boxes for the roles that should see the link — for example, Administrator and Subscriber — and leave the rest unchecked.
Step 4: Save your menu
Click Save Menu to apply your changes. Visit your site while logged in as different roles to confirm each one sees the correct links.
Example Use Cases
Members-only content link: If you want to show a "Member Dashboard" link only to logged-in customers, set the item to Logged In Users and check the Subscriber role.
Guest sign-up prompt: If you want a "Register Now" link to disappear once someone logs in, set it to Logged Out Users.
Staff-only admin shortcuts: If you want an internal "Reports" link visible only to your team, set it to Logged In Users and check just Administrator and Editor.
Conclusion
The Who can see this link? setting in Advance Menu Manager lets you tailor each menu item to the right audience — everyone, logged-in visitors, logged-out visitors, or specific roles. It keeps your navigation relevant without needing separate menus for each type of user. Keep in mind this only works with classic menus, not the FSE Navigation block.
FAQs
1. Where do I find the visibility setting?
It's under Dotstore Plugins → Advance Menu Manager. Click any menu item to expand it, and the Who can see this link? dropdown appears in the settings panel.
2. What happens if I select "Logged In Users" but don't check any roles?
The link stays visible to all logged-in users, regardless of role. Check specific roles only if you want to narrow it down further.
3. Does this affect the WordPress admin menu too?
No, this setting controls front-end navigation menus. To restrict the WordPress admin dashboard menu for specific users, use the plugin's separate Menu Lock feature.
4. Will this work on my block theme's Site Editor menu?
No. If your theme uses Full Site Editing, this user login states & role-based visibility only work with classic menus and the [amm_menu] shortcode — not the Navigation block in the Site Editor.