Cacher le menu admin avec du code (sans plugin ajouté) (Créer un compte)

  • Statut : non résolu
8 sujets de 1 à 8 (sur un total de 8)
  • Auteur
    Messages
  • #565462
    marcel6566
    Participant
    Initié WordPress
    33 contributions

    Bonjour,

    Ma configuration WP actuelle
    – Version de WordPress : 4.5
    – Version de PHP/MySQL :
    – Thème utilisé : nisarg
    – Extensions en place :
    – Nom de l’hebergeur : 1 and 1
    – Adresse du site :

    Problème(s) rencontré(s) :

    Bonjour
    Je souhaite cacher la colonne complète du menu admin directement avec du code.
    Je souhaite faire une condition sur mes différents roles (pour l’administrateur la colonne n’est pas cachée; pour les autres rôles la colonne est cachée) mais je ne sais pas ou placer cette condition.
    Cela peut se faire sur le CSS si rien n’est prévu.

    Merci pour votre aide

    Marcel

    #1064522
    Qwindoo
    Modérateur
    Maître WordPress
    2861 contributions

    Hello,

    Il va falloir être un tantinet plus précis… De quelle colonne parles-tu ? Peux-tu nous poster un lien vers ton site, ou bien une capture d’écran de la situation ?

    #1064521
    marcel6566
    Participant
    Initié WordPress
    33 contributions

    Bonsoir et merci pour ta réponse

    Je souhaite tout simplement supprimer (ou cacher) la colonne à gauche du back-office (Tableau de bord, Articles, Média, Pages, Commentaires, …). Mon site permet aux utilisateurs ayant des rôles différents d’accéder au back-office. Certaines personnes peuvent utiliser le menu contenu dans la colonne de gauche et d’autres ne doivent pas connaitre l’existence de cette colonne.

    J »ai vu qu’il était possible de cacher les différents menus (Tableau de bord, Articles, Média, Pages, Commentaires, …), par des modifications via la fonction « remove_menu_items() » dans functions.php, mais cette fonctions est incomplète pour les menus ajoutés par mes plugins.

    Je viens de trouver une solution un peu brutale, non conforme aux règles de l’art mais radicale !
    J’ai ajouté au début de la fonction _wp_menu_output() dans le fichier menu-header.php le code suivant :

    $var_cache=getRoleByUsersCourant();
    if($var_cache »administrator » && $var_cache »mes_roles_autorisés_à_voir_le_menu ») {
    $menu=array(«  »);
    $submenu= » »;
    }

    Reste à forcer « reduire le menu » en réduction est l’affaire est faite.

    Mais si tu connais une autre solution plus « conforme », je suis preneur. Merci par avance.

    Cordialement
    Marcel

    #1064523
    Qwindoo
    Modérateur
    Maître WordPress
    2861 contributions

    Hé bien tu peux déjà éviter de modifier le noyau de WP en utilisant un hook :

    function _remove_all_menus () {
    global $menu, $submenu;
    $roles = wp_get_current_user()->roles;
    if (!in_array(‘administrator’, $roles) && empty(array_filter($roles, function ($r) { return in_array($r, [‘tes’, ‘roles’]); }))) {
    $menu = [];
    $submenu = []; // pas sûr que ce soit nécessaire
    }
    }
    add_action(‘admin_menu’, ‘_remove_all_menus’); // attention aux espaces avant/après le nom de la fonction

    #1064524
    marcel6566
    Participant
    Initié WordPress
    33 contributions

    Bonjour
    Super ton code !
    Mais ou trouves-tu les infos afin d’appliquer le code sur la bonne fonction ?
    Je le testé et j’ai un message d’erreur :

    Warning: call_user_func_array() expects parameter 1 to be a valid callback, function ‘_remove_all_menus ‘ not found or invalid function name in /@mon_site/wp-includes/plugin.php on line 525.

    J’ai simplifié le nombre de rôles, mais j’ai le même message d’erreur.

    if (!in_array(‘administrator’, $roles)) {

    Merci pour ton aide
    Marcel

    #1064525
    Qwindoo
    Modérateur
    Maître WordPress
    2861 contributions

    Woops, j’ai mis une espace en trop après le nom de ma fonction, dans [c]add_action[/c] 😕

    #1064526
    Qwindoo
    Modérateur
    Maître WordPress
    2861 contributions

    Tu as une liste de toutes les actions disponibles ici, et une autre avec les filtres accessibles .

    #2218162
    marcel6566
    Participant
    Initié WordPress
    33 contributions

    Bonjour,

    Désolé pour le retard … Mieux vaut tard que jamais !

    Merci ton code fonctionne correctement.

    Cordialement

    Marcel

8 sujets de 1 à 8 (sur un total de 8)
  • Vous devez être connecté pour répondre à ce sujet.