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?
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.
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 .