I know I can add capabilities to the any role using the role object and add_cap via functions.php

   // get the the role object
   $editor = get_role('editor');
   // add $cap capability to this role object

The list of capabilities shows that "edit_theme_options" allows access to almost all items under Appearance (all but edit theme). What I wold like to do is add capacity to access only Appearance>Menu to a role. Is this possible without modifying the core?

The two most popular ACL editing plugins (Members and User Role Editor) don't allow for this as they only use the default list of capabilities

1 Answer 1


It's stupid, but you can't. (Not without editing core, anyway.) Right at the top of the nav-menus.php source code is an edit_theme_options check that's not filterable.


If you're not concerned about your editors trying anything too shady, you could simply hide the menu items using a plugin like Adminimize or Admin Menu Editor.

Of course, you could also open a ticket at http://core.trac.wordpress.org/ to try to get the core devs to change this.

  • Great, thanks! It doesnt bother me to use a plugin... Adminimize together with the "User Role Editor" plugin did it: the newly created role "SuperEditor" has all the permissions given to Editors plus manage APPEARANCE>MENU (if someone can create a page, they should also be able to manage the menu, right:)
    – Gaia
    Aug 26, 2012 at 0:27

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.