Description
At a glance
Nav Menu Roles v2.1.3 is a free WordPress plugin with 70K+ active installs, 4.9/5 rating from 219 reviews, updated March 26, 2026, requires WordPress 6.6.0+ & PHP 7.4+. Download the latest GPL version below — free, with live demo included.
This plugin lets you hide custom menu items based on user roles. So if you have a link in the menu that you only want to show to logged in users, certain types of users, or even only to logged out users, this plugin is for you.
Nav Menu Roles is very flexible. In addition to standard user roles, you can customize the functionality by adding your own check boxes with custom labels using the nav_menu_roles filter and then using the nav_menu_roles_item_visibility filter to check against whatever criteria you need. You can check against any user meta values (like capabilities) and any custom attributes added by other plugins.
IMPORTANT NOTE
In WordPress menu items and pages are completely separate entities. Nav Menu Roles does not restrict access to content. Nav Menu Roles is only for showing/hiding nav menu items. If you wish to restrict content then you need to also be using a membership plugin.
Usage
- Go to Appearance > Menus
- Set the “Display Mode” to either “logged in users”, “logged out users”, or “everyone”. “Everyone” is the default.
- If you wish to customize by role, set the “Display Mode” to “Logged In Users” and under “Restrict menu item to a minimum role” check the boxes next to the desired roles. Keep in mind that the role doesn’t limit the item strictly to that role, but to everyone who has that role’s capability. For example: an item set to “Subscriber” will be visible by Subscribers and by admins. Think of this more as a minimum role required to see an item.
Support
Support is handled in the WordPress forums. Please note that support is limited and does not cover any custom implementation of the plugin. Before posting, please read the FAQ. Also, please verify the problem with other plugins disabled and while using a default theme.
Please report any bugs, errors, warnings, code problems to GitHub
Frequently asked questions
What do I get when I download Nav Menu Roles?
Nav Menu Roles 2.1.3 is the latest version. It is a WordPress plugin you can download here free of charge under the GPL license, with the complete feature set included and no trial limitations. It holds a 4.9/5 rating from 219 user reviews.
Does Nav Menu Roles cost anything?
No. Nav Menu Roles 2.1.3 is 100% free — the full GPL version, not a trial or demo. There are no download limits, no accounts to create, and no upsells during the download.
How do I install Nav Menu Roles 2.1.3?
Download the ZIP file from this page, then in your WordPress dashboard go to Plugins → Add New → Upload Plugin, choose the file, click Install Now, then Activate. The plugin works immediately after activation — no license key or extra setup is required for the core features.
What are the requirements for Nav Menu Roles?
Nav Menu Roles 2.1.3 requires WordPress 6.6.0 or higher and PHP 7.4 or higher. Most modern WordPress hosts already meet these versions. Running older versions may cause features to break, so update WordPress and PHP first if your site is behind.
When was Nav Menu Roles last updated?
Version 2.1.3 was last updated on March 26, 2026. This page is refreshed automatically, so the download here always matches the newest version we have verified.
Is the Nav Menu Roles download safe?
The file is sourced directly from the official WordPress.org repository — the same file the developer published. It is served unmodified, so what you install here is byte-identical to the official release.
Technical details
| Version | 2.1.3 |
|---|---|
| Last updated | March 26, 2026 |
| Active installs | 70,000+ |
| Rating | ★★★★★ 4.9/5 (219 reviews) |
| Requires WordPress | 6.6.0 or higher |
| Requires PHP | 7.4 or higher |
| Author | HelgaTheViking |
| Tags | menu, menus, nav-menu, nav-menus |
Download Nav Menu Roles
Download Nav Menu Roles WP PluginNote: if the download does not start, disable your ad blocker and try again.