web-dev-qa-db-fra.com

changer le menu principal en fonction de la connexion de l'utilisateur

Comment puis-je changer mon menu frontal selon que l'utilisateur est connecté ou non?

Par exemple:

Vue 1: l'utilisateur n'est pas connecté
Le menu est: maison, à propos de nous, témoignages

Vue 2: l'utilisateur est connecté
Le menu est: tableau de bord, mon profil, support

Merci d'avance.

2
rexposadas

Définissez deux menus et servez-les en fonction s'ils sont connectés ou non, ce que vous pouvez faire dans le fichier functions.php de votre thème:

if (is_user_logged_in()){
  wp_nav_menu( array(
    'menu'            => 'Logged In Menu',
    'container_class' => 'logged-in-menu',
    'theme_location'  => 'logged-in'
  ));
} else {
  wp_nav_menu( array(
    'menu'            => 'Visitor Menu',
    'container_class' => 'visitor-menu',
    'theme_location'  => 'visitor'
  ));
};

Vous devrez également enregistrer leurs emplacements de thème, ce que vous pouvez également créer dans le fichier functions.php de votre thème:

register_nav_menus( array(
  'logged-in'  => __( 'Logged-in Menu Area',  'yourtheme' ),
  'visitor' => __( 'Visitor Menu Area', 'yourtheme' ),
));

Et vous devrez assigner ces menus à leurs emplacements de menu dans l’administrateur, comme suit:

WordPress Admin Menu Locations

8
MikeSchinkel