I used Ian Stewart's Simple WordPress Theme Options Page (Source^) for my client's site, where I assigned my client as an Editor. But from the Editor account the Theme Options link is not visible.

I checked the theme-options.php for add_theme_page(), where it's used 'edit_theme_options' as the menu's capability. But unfortunately it's not visible. I installed:

  • User Role Editor, and
  • White Label CMS

But in White Label CMS, I unchecked the hide menu thing. But the link becomes visible only if I check the User Role Editor's manage_options checkbox. But it opens the Settings menu to the Editor. I checked the edit_theme_options for Editor, but it doesn't work.

I changed the theme-options.php's add_theme_page() capability to even lower to edit_published_posts (Author capability), but not worked here. I tried deactivating User Role Editor, but no luck.

closed as off-topic by Chip Bennett, tfrommen, kaiser, s_ha_dum, Wyck Jan 28 '14 at 23:43

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions that are too localized (such as syntax errors, code with restricted access, hacked sites, hosting or support issues) are not in scope. See how do I ask a good question?" – Chip Bennett, tfrommen, kaiser, s_ha_dum, Wyck
If this question can be reworded to fit the rules in the help center, please edit the question.

  • Might want to rework that question? So far it's too localized. – kaiser Jan 28 '14 at 18:29

Ok. Found the guilty one: it's White Label CMS. White Label CMS

Activating only the Site Options did not working, when activated the Menus too, it's working.


Your problem may be caused by the parent page of your Theme Options. As the function add_theme_page() is just a wrapper for

add_submenu_page( 'themes.php', $page_title, $menu_title, $capability, $menu_slug, $function );

your options page is linked as a submenu of "Design" (using themes.php), which requires the capability manage_options. Even if the submenupage requires less, the parent is not shown for the Editor.

You could add your theme options as a different parent menu entry:

add_menu_page( __( 'Theme Options', 'sampletheme' ), __( 'Theme Options', 'sampletheme' ), 'publish_pages', 'theme_options', 'theme_options_do_page', $icon_url, $position );

Your editor should be able to see that in the menu.

The reference for the parameters in the Codex is here.

  • Thanks. Btw, I answered my question as I found the exact problem. But failing to save data as an Editor user role - showing Cheati' eh! :( – Mayeenul Islam Jan 28 '14 at 17:43
  • I changed the position of the page using the add_menu_page() as you suggested with the capabilities publish_pages. But the same problem - doesn't saving data as an Editor and showing error: Cheatin’ uh? – Mayeenul Islam Jan 28 '14 at 18:13
  • Oh I get it - you will have to allow the Editor to manage_options too, as your template calls the options.php to save the data. – fischi Jan 28 '14 at 18:28
  • I know that solved the problem, but as said here in Trac Ticket: "giving these users 'manage_options' capability is not a good idea as that allows them to do other things that they shouldn't be able to do" Isn't it a WordPress bug? I wonder how ElegentThemes solved it (as said here): Elegant Themes has apparently fixed their themes in the latest versions. I verified their one-line fix described in this thread. – Mayeenul Islam Jan 29 '14 at 5:11

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