web-dev-qa-db-fra.com

Donner l'accès à l'éditeur à la barre latérale

Je souhaite donner au rôle de rédacteur le droit de modifier la barre latérale et son contenu. J'ai un widget de texte là-bas et pour pouvoir l'éditer, l'utilisateur doit être un administrateur - c'est nul. Comment puis-je accorder l'autorisation au rôle d'édition qui lui donnera le droit de modifier la barre latérale?

14
Howdy_McGee

La fonctionnalité edit_theme_options devrait permettre à l'utilisateur de modifier la barre latérale comme décrit sur cette page: http://codex.wordpress.org/Appearance_Widgets_SubPanel

Code à ajouter à functions.php

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

Modifier:

Cela devrait empêcher l’éditeur d’accéder à des thèmes ou des 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');

Je n'ai pas eu la chance de tester cela, mais cela les supprime seulement du menu auquel ils peuvent encore accéder en tapant directement l'URL.

22
Elliott

Si vous voulez juste configurer cela aussi facilement que possible, utilisez le plugin Membres. La capacité à ajouter est "edit_theme_options". Sachez que cela octroie plus que la zone des widgets, cela donne également à l'éditeur l'accès à l'intégralité du menu Apparence. Vois ici

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

Si vous voulez le faire par programme, vous devrez utiliser add_cap ().

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

Vous pouvez jeter ce code dans son propre plugin, et vous avez terminé. Ou mettez-le dans functions.php .

2
eddiemoya