0

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
0

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.

0

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.