To create a login/logout link in WordPress you can use a snippet of php code using the wp_logout_url function, you can also set the logout URL to be an external site to your own.

<?php if (is_user_logged_in()) : ?>
    <a href="<?php echo wp_logout_url(get_permalink()); ?>">Logout</a>
<?php else : ?>
    <a href="<?php echo wp_login_url(get_permalink()); ?>">Login</a>
<?php endif;?>

If you just want a logout link only:

<?php if (is_user_logged_in()) : ?>
    <a href="<?php echo wp_logout_url(get_permalink()); ?>">Logout</a>
<?php endif;?>

If you just want a login link only:

<?php if (! is_user_logged_in()) : ?>
    <a href="<?php echo wp_logout_url(get_permalink()); ?>">Login</a>
<?php endif;?>

You can add this anywhere in your theme template files – if you want to add as a widget – you need to enable PHP for widgets.

To set the link when logging out to some external URL you can change what gets passed into the wp_logout_url() function, for example…

wp_logout_url( 'http://somewhereelse.com' );

But before it will work you need to add it to a list of allowed URLs, so in your functions.php file add…

add_filter('allowed_redirect_hosts','allow_ms_parent_redirect');
function allow_ms_parent_redirect($allowed) {
 $allowed[] = 'somewhereelse.com';
 return $allowed;
}

Now the logout will pass you onto another site.

To add the login/logout as a shortcode, you can add the below in functions.php and the use the [login_logout] shortcode.

ref

11 Comments

  1. Amanda on February 2, 2020 at 12:32 am

    Thank you for the above. I am using the shortcode for a dynamic login/logout link. How can I modify the php code so admin is redirected to the admin dashboard upon login and subscribers are redirected to the homepage? Thank you in advance for any help.

  2. Tĩnh on October 12, 2019 at 8:16 am

    Hi – Thanks for this information. But
    I want to add to the header-icon-menu of the outfitter theme.
    Please help me!

  3. kunal on September 8, 2017 at 6:53 am

    Thanks! you solved my problem

  4. Bill G on January 19, 2017 at 9:23 pm

    This is pretty vague… “anywhere in your Theme Template Files”

    Which file? under which directory?

  5. Gabi on October 12, 2016 at 4:52 pm

    Hi
    How do I add the logout link to the primary menu only?

  6. Jennifer on August 15, 2016 at 5:27 pm

    Hi – Thanks for this information. Works great:) Can you tell me how I would customize the logout text?

    Jen

  7. Richard on July 28, 2016 at 12:57 pm

    What if you want to redirect to a “logged out” page, after the logout command has run ?

  8. john on August 27, 2015 at 12:34 pm

    thank u , it woks fine

  9. Christian Schäfer on May 13, 2015 at 9:45 am

    Worked fine! Thanks for the snippet – made my day :)

Leave a Comment