Question

Long time lurker, but first time poster. I've searched Google extensively and just can't seem to come up with an answer on this problem.

I use Justin Tadlock's excellent 'Members' plugin for roles and permissions on several client installations of WP. I've recently deployed a theme where the client should only have access to the Appearance -> Menus item, but none of the others sub-items in the Appearance menu of the admin.

When enabled, the role 'edit_theme_options' enables the user to access 'Themes', 'Widgets', and 'Menus'. How would I go about filtering the submenu so that if the role 'edit_custom_menus' is assigned, the 'Menus' link will show?

Was it helpful?

Solution

Upon further searching and after discovering the $submenu global variable, I've managed to find a helpful tutorial on removing sub-menus from the WordPress admin.

I'll post with code when I get a full solution implemented and integrated with the plugin.

OTHER TIPS

I don't use plugin myself, so speaking theoretically. There are two parts to this:

  1. Determine if user has role that can see menus. Plugin's documentation describes current_user_has_role() function for this.
  2. Actually hiding menus if role doesn't fit. I don't have anything tested to offer, try this for starters: How to remove menus in WordPress dashboard ( WpRecipes )
Licensed under: CC-BY-SA with attribution
Not affiliated with wordpress.stackexchange
scroll top