Skip to content

Instantly share code, notes, and snippets.

@nickcernis
Last active May 26, 2018 19:18
Show Gist options
  • Save nickcernis/02086c75ee9aa19447e0 to your computer and use it in GitHub Desktop.
Save nickcernis/02086c75ee9aa19447e0 to your computer and use it in GitHub Desktop.
Add a login/logout link to the menu bar of any Genesis child theme
<?php // add everything except for this opening line to your functions file
add_filter( 'wp_nav_menu_items', 'sp_add_loginout_link', 10, 2 );
function sp_add_loginout_link( $items, $args ) {
// Change 'primary' to 'secondary' to put the login link in your secondary nav bar.
if ( $args->theme_location != 'primary' ) {
return $items;
}
if ( is_user_logged_in() ) {
$items .= '<li class="menu-item"><a href="' . wp_logout_url( home_url() ) . '">Log Out</a></li>';
} else {
$items .= '<li class="menu-item"><a href="' . site_url( 'wp-login.php' ) . '">Log In</a></li>';
}
return $items;
}
@AmeliaBriscoe
Copy link

Hey Nick! Thanks for the code snippet :-)

I ended up adding a redirect to my code so members were redirected to my member dashboard when logging in, and then the home page when logging out.

if ( is_user_logged_in() ) {
    $items = $items . '<li class="menu-item"><a href="'. wp_logout_url( home_url() ) .'">Log Out</a></li>';
} else {
    $items = $items . '<li class="menu-item"><a href="'. site_url('wp-login.php/?redirect_to='. home_url( '/member-dashboard/')) .'">Log In</a></li>';
}

I used home_url for the redirect, rather than site_url, as I have a sub folder going on in my set up.

I'm sure it could be extended to redirect to the permalink the member was on or to any of the other interesting places on my website!

@nickcernis
Copy link
Author

Nice addition, @MissAmeliaSmith! Thanks for sharing it here.

@braddalton
Copy link

Here's another way to do it wp_loginout https://codex.wordpress.org/Function_Reference/wp_loginout

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment