add_filter( 'wp_nav_menu_items', 'dy_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 dy_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; }