[Résolu] Afficher un menu différent en fonction de l’utilisateur (Créer un compte)

  • WordPress :5.7
  • Statut : résolu
3 sujets de 1 à 3 (sur un total de 3)
  • Auteur
    Messages
  • #2376042
    kikadikoi
    Participant
    Initié WordPress
    8 contributions

    Bonjour à toutes et à tous,

    Ma configuration WP actuelle

    • Version de PHP/MySQL : 8
    • Thème utilisé : Perso
    • Extensions en place : aucune
    • Nom de l’hébergeur : localhost
    • Adresse du site : localhost

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

    (je suis débutant avec WordPress)

    [Contexte :]
    Afficher un menu différent dans la page, en fonction du statut de l’utilisateur (Ex. : membre, rédacteur, ou autres …)

    [Questions :]

    • quelle wp_fonction peut restituer le statut de l’utilisateur ?
    • où placer la condition if() : dans le modèle de page ?  dans le fichier functions.php ?
    • comment déclarer au programme le menu concerné ?

     

    #2376077
    ferman
    Participant
    Maître WordPress
    3973 contributions

    Bonjour,

    • Afficher un menu différent dans la page, en fonction du statut de l’utilisateur

    Il y a des extensions pour faire ça: par exemple celle-ci.

    Sinon:

    • quelle wp_fonction peut restituer le statut de l’utilisateur ?

    Il y a plusieurs méthodes mais on utilise souvent simplement la condition if(current_user_can(“ici un role ou une capacité'”)){ ici n’importe quelle fonction} ou sa cousine if ( is_user_logged_in()){ici n’importe quelle fonction} si on veut faire la différence selon que l’utilisateur est connecté ou non.

    • où placer la condition if() : dans le modèle de page ?  dans le fichier functions.php ?

    Dans functions.php d’un thème enfant

    • comment déclarer au programme le menu concerné ?

    Quand vous créez vos menus vous leur donnez des noms différents, par ex menu1 et menu2 c’est ce qui permet de les distinguer. Par  exemple, si vous voulez que seuls les administrateurs voient menu1 et les autres visiteurs voient menu 2 vous pourrez utiliser le code suivant:

    function menu_par_role($args) {
       
    		if(current_user_can("administrator")){ // changer suivant role souhaité           
    			$args['menu']= 'menu1';		
    			}
    		else{
                $args['menu'] = 'menu2';	
    			}
    		return $args;
        }
    add_filter('wp_nav_menu_args', 'menu_par_role' );

     

     

     

    • Cette réponse a été modifiée le il y a 2 semaines par ferman.
    #2376094
    kikadikoi
    Participant
    Initié WordPress
    8 contributions

    Ça répond parfaitement à mon questionnement ; merci beaucoup pour ces précisions !  😉

     

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