logo

Donner l’autorisation aux éditeurs la gestion des widget et/ou des menus [functions + PHP]

Il arrive que nous ayons besoin de donner des droits sur les widgets et/ou sur les menus. Ce petit code vous permet de donner la gestion des widgets et des menus à vos éditeurs mais également à la personnalisation du thème (outils wordpress).

Il vous suffit d’effacer  les lignes que vous ne voulez pas voir sur la sidebar du backoffice. Chaque lignes efface le lien mais pas le droit (c’est peut être ce qui pourra vous bloquer dans le choix de ce « hack ») mais il y a peu de chance que vos clients essayent d’avoir plus de droits.

sur function.php

// donne l'autorisation à l'éditeur d'acceder aux widgets et aux menus
function add_theme_caps_to_editor() {
    // Obtient le rôle 'editor'
    $editor = get_role('editor');  

    // Ajoute la capacité 'edit_theme_options' au rôle 'editor'
    if (!empty($editor)) {
        $editor->add_cap('edit_theme_options');
    }
}
add_action('admin_init', 'add_theme_caps_to_editor');
function restrict_editor_from_some_theme_options() {
    $user = wp_get_current_user();
    if (in_array('editor', $user->roles)) {
        global $submenu;
        // Retirez l'accès aux options de thème non souhaitées
        unset($submenu['themes.php'][5]);  // Thèmes
        unset($submenu['themes.php'][6]);  // Personnaliseur
        unset($submenu['themes.php'][20]); // Options du thème (si disponible)
        // Ajoutez d'autres éléments du sous-menu à supprimer si nécessaire
    }
}
add_action('admin_menu', 'restrict_editor_from_some_theme_options');