Give Editor Access To Sidebar

The question:

I want to give the Editor Role access to editing the sidebar and it’s contents. I have a text widget in there and in order to edit this text widget the user needs to be an admin – this sucks. How do I grant permission to the Editor Role that will give him access to edit the sidebar?

The Solutions:

Below are the methods you can try. The first solution is probably the best. Try others if the first one doesn’t work. Senior developers aren’t just copying/pasting – they read the methods carefully & apply them wisely to each case.

Method 1

The edit_theme_options capability should allow the user to edit the sidebar as described on this page :
http://codex.wordpress.org/Appearance_Widgets_SubPanel

Code to add to functions.php

   $role = get_role('editor'); 
   $role->add_cap('edit_theme_options');

Edit:

This should work to prevent editor accessing themes or menus

function custom_admin_menu() {

    $user = new WP_User(get_current_user_id());     
    if (!empty( $user->roles) && is_array($user->roles)) {
        foreach ($user->roles as $role)
            $role = $role;
    }

    if($role == "editor") { 
       remove_submenu_page( 'themes.php', 'themes.php' );
       remove_submenu_page( 'themes.php', 'nav-menus.php' ); 
    }       
}

add_action('admin_menu', 'custom_admin_menu');

I haven’t had chance to test this, but it only removes them from the menu they may still be able to access them by typing in the URL directly.

Method 2

If you just want to configure this easy as possible, use the Members plugin. The capability you’ll need to add is ‘edit_theme_options’. Be aware that this will grant more than just the widgets area, this also grants the editor access to the entire Appearance menu. See here

http://wordpress.org/extend/plugins/members/

If you want to do this programmatically, you’ll need to use add_cap().

$editor = get_role('editor');
$editor->add_cap('edit_theme_options');

You can throw that code into its own plugin, and your done.
Or put it into functions.php.


All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

Leave a Comment