Occasionally a plugin is released that really excites me. Today that happened with the new plugin from Kathy Darling called “Nav Menu Roles”. It’s a really simple plugin that makes it possible to restrict nav menu items to users of a specific role, and it works really well.

The plugin is currently only on Github, but Kathy said she will be publishing it on the WordPress.org repository really soon.

You can read more about the plugin on Kathy’s website.

Download plugin
  1. Paul

    This is AMAZING! I love it!

  2. Anton Samper

    Great find Pippin and kudos to Kathy. I will definitely be using this plugin on some of the sites I manage as I’m currently having to maintain to separate menus, one for logged in users and another for logged out users

  3. FanaticWeb

    Great find Pippin, Kathy’s plugin seems neat but limited to the Menu navigation system, isn’t most user interaction located outside of the navigation menu? As in the header section?

    There’s another plugin that does a similar task but works with Widgets only, which also works in conjunction with another plugin that can hide/show the widget based on user role and user status (logged in/out).

    I’m looking forward to see Kathy’s plugin release and the outcome.

    • Pippin

      I wouldn’t call it limited at all, but rather specific. It targets one specific problem and does it quite well. Personally I really dislike plugins that try to do everything, so if there was a plugin that hide nav menu items, hid widgets, restrict page content, etc, I wouldn’t use it. I’d use the individual plugins instead.

  4. Kathy

    Thanks for the review Pippin! I like your idea… if you send me a pull request for it I can add it. Or maybe I can take a look tomorrow… it shouldn’t be too hard. Basically you’d like an extra check box to show the menu item to any logged in user? I’ll post the repo link when it goes live.

    @Anton and @Paul. Glad it could be useful for you. I’ve had to do the multiple menus before and it is annoying. I needed this again today and happened to come across the relevant code pieces at WordPress Answers.

    @FanaticWeb yes it is limited to the custom menu system. That’s all it does. Couldn’t have cranked it out in just a day if it had been more. A client of mine needed to have items in the menu that only showed for ‘team’ members, so that is all I tried to achieve.

    • Pippin

      I’ll try and get a pull request to you soon, if you don’t beat me to it.

  5. JackYu

    Awesome! I have been using a plugin called WP Custom Menu Filter by WP smith that does the same thing Pippin suggested. However, it uses CSS classes to filter out items for logged-out or logged-users. This one is way more intuitive and powerful. Going to try this today.

    • Pippin

      I’ve submitted a pull request on Github to add the logged in/out restrictions, so that feature will definitely get added.

    • Alfonso

      Hi JackYu, Could you tell me how to use “WP Custom Menu Filter” I don’t know what CSS clases are, thank you in advance.

  6. Kathy

    Just a heads up that version 1.2 saw a rewrite that removes the conflict with theme’s that were using their own front-end Walker for menu styling. There are still some theme conflicts with themes that use a custom admin Walker, but that is much rarer and can’t be resolved until WordPress adds the appropriate hooks.

    • Pippin

      Great, thanks for posting the update!

  7. johnlanglois

    Great plugin. Thank you, Kathy.
    I tried using it with UberMenu and the restriction choices would not show up.
    However, I deactivated UberMenu, selected the admin restriction, reactivated UberMenu and the behavior works as needed, even if you can’t see them in UberMenu.

  8. Eric Bremmer

    Hello,

    Does this plugin also prohibit access with regard to a certain page?

    One thing is hiding a menu item, but another thing is protect it for usage.

    Suppose that a user knows the url of the hidden page, what will happen then?

    Furthermore, I understood that Pippin is looking for a possibility to hide a menu item when a user is not logged in. As far as I know, a plugin called “If Menu” does the job.

    Regards to all,

    Eric

  9. Noel

    Hey, Kathy,

    I’m building a site using the Fundify theme, and using the Nav Menu Roles plug-in. I’m trying to build 2 taxonomies with categories beneath them, just like their demo.

    However — and maybe I’m worried about this too much — I noticed that the Fundify instructional video has a few things that my set-up isn’t showing (because the narrator skipped over these instructions, I don’t know how he got them on the demo site):

    Here’s the Fundify instructional video:
    See from the 9:38 mark: …
    http://astoundify.com/documentation/fundify/

    Here are my issues:
    1) In Appearance > Menus, the taxonomies ‘Discover’ (in the menu called ‘Left Nav’) and ‘The Drop’ (in the menu called ‘The Drop’) are designated as ‘Custom’. I have no idea how to use the Nav Menu Roles plug-in to do this. Can you tell me?

    2) Also, on the right column, these drop-down menus are missing: ‘Categories’, ‘Campaign Categories’, and ‘Campaign Tags’ are missing. Why??

    It’s possible that when I fully populate these areas, those missing drop-down menus will show up. I’m just a little nervous when the video says that these things should already be there at that point in the video (which I’ve been trying to follow step-by-step). What I did instead was post the taxonomies in the Posts > Categories section, post the individual pages in Posts > Pages, and then make the taxonomy categories (‘Discover’ and ‘The Drop’) the parents, and THEN slide the sub-categories and pages under them, like a tree.

    I’m worried I’m missing something really obvious, and really want to know if what I’m doing will work the same, or if I should really solve this now (since the video says it’s one of the plug-ins I had to install).

    I’m sure there is a VERY simple answer, but for the life of me, I don’t know what it is. Help would be appreciated. Thanks in advance!

  10. Alberto

    Unfortunately the plugin erases the CSS class attribute of the menu items and in my projects they are set in position absolute by each class. Don’t know why it is doing so but all my classes disappeared.

    • Pippin

      Have you raised the issue with the plugin developer?

Your email address will not be published. Required fields are marked *