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.

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.

The "Who can see this link?" dropdown on a menu item.

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.

Role checkboxes appear only when "Logged In Users" is selected.

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.

Did this answer your question? Thanks for the feedback There was a problem submitting your feedback. Please try again later.