web-dev-qa-db-fra.com

Gérer un menu personnalisé pour un éditeur?

J'ai un problème avec la permission. Existe-t-il une autorisation spécifique permettant à un utilisateur ayant un rôle d'éditeur de gérer le menu personnalisé d'un thème et uniquement avec ces options?

L'élément qui est sous Apparence -> Menu, pour être clair.

J'utilise le plugin de capacité. Dois-je écrire un hook personnalisé pour activer uniquement l'utilisation de l'éditeur de menu personnalisé?

TIA

Edit: J'ai codé une solution simple. Voir ci-dessous ma réponse!

1
keatch

Vous devez donner au rôle d’éditeur l’autorisation "edit_theme_options", mais cela débloquera également d’autres options de thème, telles que les widgets, pour ces utilisateurs.

1
prettyboymp

Ok, j'ai trouvé un moyen d'utiliser l'action admin_menu. Je poste ici, au cas où quelqu'un en aurait besoin.

Ce code supprime pour un utilisateur spécifique tous les éléments de sous-menus, à l'exception de celui des menus personnalisés du menu Appereance .

add_action('admin_menu', 'enable_only_custom_menu');

function enable_only_custom_menu() {
    global $menu,$submenu;
    global $current_user;
    get_currentuserinfo();

    if ($current_user->user_login == 'username') {
        foreach($submenu['themes.php'] as $key=>$smenu) {
            if ($smenu[2] != 'nav-menus.php') {
                unset($submenu['themes.php'][$key]);
            }
        }
    }
}

Vous devez itérer le sous-menu pour la clé 'themes.php' et supprimer tous les éléments qui ne vous intéressent pas.

1
keatch