Menu Visibility Control

Description

Menu Visibility Control is a lightweight and reliable WordPress plugin that lets you manage menu visibility based on login status or user roles — directly inside the menu editor.

Choose who sees each menu item:
* 👥 Everyone
* 🔒 Logged-in users only
* 🚪 Logged-out users only
* 🧩 Specific user roles (Administrator, Editor, Subscriber, etc.)

No extra pages, no complicated setup — just open Appearance Menus, edit a menu item, and select the visibility option.

💡 Perfect For

  • Membership and community sites
  • Client dashboards and intranets
  • Multi-role WordPress sites
  • Blogs that need different menus for visitors vs. members

🔧 Key Features

  • Seamlessly integrates with Appearance Menus
  • Works with any theme or page builder using wp_nav_menu()
  • Role-based visibility support
  • Secure and performance-optimized (nonces, sanitization, minimal footprint)
  • 100 % free and open-source

🧠 Why Use It

Unlike heavier plugins, Menu Visibility Control uses core WordPress filters only — keeping your site fast, secure, and fully compatible with caching or multilingual setups.

Support

Need help or want to share feedback?
Visit the support forum or leave a review.
If you love this plugin, consider donating to support ongoing development.

License

This plugin is licensed under the GPL v2 or later.
You are free to use, modify, and redistribute it under the same license.

Screenshots

  • Visibility options in the WordPress menu editor.
  • Role selection checkboxes for “User Roles.”

Installation

  1. Upload the plugin folder to /wp-content/plugins/menu-visibility-control/, or install it directly from the WordPress plugin installer.
  2. Activate it through Plugins Installed Plugins.
  3. Go to Appearance Menus, expand a menu item, and set the Visibility dropdown to:
    • Everyone
    • Logged In Users
    • Logged Out Users
    • User Roles (then tick which roles can view it)

That’s all — no configuration required.

FAQ

Where are the plugin settings?

There’s no separate settings page. All visibility controls appear directly in Appearance Menus when editing menu items.

Can I hide or show items by user role?

Yes. Choose User Roles as the visibility option, then select the specific roles allowed to see that menu item.

Does it work with all themes and builders?

Yes. It works with any properly coded theme or builder that uses WordPress’ native wp_nav_menu() function, including Elementor, Divi, and Block themes.

Will it affect my site speed?

No. The plugin is extremely lightweight and only runs on menu rendering.

Can I translate the plugin?

Yes. It’s fully ready for translation using the text domain menu-visibility-control.

Is it safe for production sites?

Absolutely. It follows WordPress coding standards, uses nonces and sanitization, and stores only simple metadata in each menu item.

Reviews

October 28, 2025 1 reply
Really good, easy-to-use plugin for hiding menus from users who are not logged in to the site. Perfect and does the job !Isidore
Read all 2 reviews

Contributors & Developers

“Menu Visibility Control” is open source software. The following people have contributed to this plugin.

Contributors

Changelog

1.0.3

  • Minor performance improvements and code cleanup.
  • Confirmed compatibility with WordPress 6.8 and PHP 8+.
  • Updated admin notice and translations.

1.0.2

  • Added role-based visibility.
  • Improved data sanitization and security checks.

1.0.1

  • Initial public release.