Menu Visibility

The Menu Visibility module adds conditional controls to WordPress navigation menus. You can show menu items to everyone, only logged-in users, or only logged-out visitors—helping you create smarter, more personalized navigation experiences without deleting items.

How to use

To enable the Menu Visibility module:

  1. Click on the “Admin Tools” category
  2. Search or scroll to locate the Menu Visibility module
  3. Click on the switch to enable

What’s next?

This module adds visibility controls to each navigation menu item in the WordPress menu editor:

  • Show items to Everyone, Logged In users only, or Logged Out users only
  • Settings live per menu item in Appearance > Menus
  • Non-destructive: items aren’t deleted—just conditionally displayed on the frontend

1. Set Visibility per Menu Item

  1. Go to Appearance > Menus
  2. Click a menu item to expand its settings
  3. Under “Menu Item Visibility For”, choose one:
    • Everyone
    • Logged In
    • Logged Out
  4. Click “Save Menu”

2. Options Explained

  • Everyone: Default behavior; item shows for all visitors
  • Logged In: Item shows only when is_user_logged_in() is true
  • Logged Out: Item shows only when is_user_logged_in() is false

3. Best Practices

  • Show “My Account,” “Dashboard,” or “Log out” to Logged In users
  • Show “Log in” or “Register” to Logged Out users
  • Keep critical navigation paths available to Everyone unless there’s a clear reason to restrict

4. Troubleshooting

  • Options not visible in menu item:
    • Ensure the module is enabled
    • Confirm you have permissions: edit_theme_options
  • Changes not reflected on site:
    • This only affects frontend menus; verify on the public site (not wp-admin)
    • Clear page cache/CDN and hard-refresh
  • Unexpected item visibility:
    • Re-check the selected radio option on the item
    • Verify you’re viewing the correct menu and location (theme menu assignments)

5. Compatibility & Notes

  • Works with standard WordPress nav menus (Appearance > Menus)
  • Filters run on frontend only (wp_get_nav_menu_items)
  • The module adds a fieldset to each menu item via wp_nav_menu_item_custom_fields
  • Data is stored in _wpext_menu_item_visible meta with values: '' (Everyone), '1' (Logged In), '2' (Logged Out)

This module is perfect for:

  • Personalizing navigation for members vs. visitors
  • Simplifying menus based on authentication state
  • Improving UX by showing only relevant links

Need help?

Still need help? Create a support ticket and our team will get back to you shortly.