Change which menu is used if user logged in
add_filter('wp_nav_menu_args', 'my_wp_nav_menu_args');
function my_wp_nav_menu_args ($args)
{
if (is_user_logged_in())
{
//USER IS LOGGED IN
if (strtolower($args['menu']) === (strtolower'HeaderMenu_LoggedOut')) //Do our check in lowercase because it seems we get given the menu slug which is lowercase
{
if (is_nav_menu('HeaderMenu_LoggedIn'))
$args['menu'] = 'HeaderMenu_LoggedIn';
}
}
return $args;
}
Adding items to a menu
//***********************************************************
//***********************************************************
//********** ADD LOG IN / LOG OUT TO THE MAIN MENU **********
//***********************************************************
//***********************************************************
add_filter( 'wp_nav_menu_items', 'wp_nav_menu_items_loginout_menu_link', 10, 2 );
function wp_nav_menu_items_loginout_menu_link( $items, $args )
{
//print_r($args);
if ($args->menu->name == 'Menu-Header') //<<<The name you have used for the menu
{
if (is_user_logged_in())
$items .= '<li><a href="/log-out">'. __("Log Out") .'</a></li>'; //<<<Log out URL (you can use wp_logout_url() or your own link
else
$items .= '<li><a href="'. wp_login_url(get_permalink()) .'">'. __("Log In") .'</a></li>'; //<<<Log out URL (you can use wp_login_url(get_permalink()) or your own link
}
return $items;
}
