Last active
May 26, 2018 19:18
-
-
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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?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; | |
} |
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!
Nice addition, @MissAmeliaSmith! Thanks for sharing it here.
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
@sixstringseraph Glad it was helpful.
You could use this format to prepend the link to existing menu items instead of appending it:
The original line:
is shorthand for:
To reverse them, you swap the
$items
and the new menu link HTML.