• Skip to primary navigation
  • Skip to main content

Genesis Community

Resources for Genesis WordPress Theme Users

  • Facebook
  • Twitter
  • Slack
  • Wiki
  • Login
You are here: Home / Wikis / WordPress / Add Login/Logout menu items conditionally to Primary nav menu

Add Login/Logout menu items conditionally to Primary nav menu

add_filter( 'wp_nav_menu_items', 'sk_conditional_nav_items', 10, 2 );
/**
 * Filter menu items to append Logout and Login links to Primary Nav for logged in and non logged in users respectively.
 *
 * @param string   $menu HTML string of list items.
 * @param stdClass $args Menu arguments.
 *
 * @return string Amended HTML string of list items.
 */
function sk_conditional_nav_items( $menu, $args ) {

    if ( 'primary' !== $args->theme_location ) {
        return $menu;
    }

    if ( is_user_logged_in() ) {
        $menu .= '<li class="menu-item logout"><a href="' . wp_logout_url() . '">Logout</a></li>';
    } else {
        $menu .= '<li class="menu-item login"><a href="' . wp_login_url() . '">Login</a></li>';
    }

    return $menu;

}

Posted by: Sridhar Katakam Category: WordPress Tags: conditional, nav menu, primary nav

« Change Posts Per Page for Event Archive
Remove current_page_parent class from blog page menu link when on unrelated CPT or Search Results page »

Copyright © 2026 · Genesis Sample on Genesis Framework · WordPress · Log in