WORDPRESS | Custom menu if user logged in

Obtenir un menu différent si le user est logged in ! sinon le menu par défaut (ou un autre).

Il faut utiliser la fonction Menu dans le dashboard et créer deux menus !

Editer le fichier function.php

Note : Le theme utilise est un theme de chez ElegantThemes, mais cela doit s’adapter a d’autres themes.

Le fichier se trouve dans:

wp-content/themes/Mon_theme/functions.php

(vous pouvez aussi utiliser un child theme.)

Remplacer

function register_main_menus() {
register_nav_menus(
array(
'primary-menu' => __( 'Primary Menu' )
)
);
};

Par

function register_main_menus() {
register_nav_menus(
array(
'primary-menu' => __( 'Primary Menu' ), 'logged-in-menu' => __( 'Logged-in Menu' )
)
);
};

Editer le fichier header.php

Le fichier se trouve dans:

wp-content/themes/Mon_theme/header.php

(vous pouvez aussi utiliser un child theme.)

Remplacer :

if (function_exists('wp_nav_menu')) {
$primaryNav = wp_nav_menu( array( 'theme_location' => 'primary-menu', 'container' => '', 'fallback_cb' => '', 'menu_class' => $menuClass, 'echo' => false ) );
};

Par :

if (function_exists('wp_nav_menu')) {
if ( is_user_logged_in() ){
$primaryNav = wp_nav_menu( array( 'theme_location' => 'logged-in-menu', 'container' => '', 'fallback_cb' => '', 'menu_class' => $menuClass, 'echo' => false ) );
} else {
$primaryNav = wp_nav_menu( array( 'theme_location' => 'primary-menu', 'container' => '', 'fallback_cb' => '', 'menu_class' => $menuClass, 'echo' => false ) );
};
};

Logged-out-menu
Logged_out

Logged-in-menu
Logged_in

Dashboard-Menu
MenuDashboard_note

Note :

Logged-in-menu sera le second menu à apparaitre sous le nom de Logged-in Menu

Cela aurait très bien pu être :

secondary-menu serait le second menu à apparaitre sous le nom de Secondary Menu

whatever-menu serait le second menu à apparaitre sous le nom de Whatever Menu

whatever-menu serait le second menu à apparaitre sous le nom de My Super Menu

Olivier
About

Product and graphic designer turned to be a Mac SysAdmin.

Posted in Design, Development Tagged with: , ,

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>