wp_loginout()WP 1.5.0

Display the Log In/Out link.

Displays a link, which allows users to navigate to the Log In page to log in or log out depending on whether they are currently logged in.

1 time — 0.000138 sec (fast) | 50000 times — 3.67 sec (fast) | PHP 7.0.2, WP 4.4.2
Hooks from the function

Return

null|String. Void if $display argument is true, log in/out link if $display is false.

Usage

wp_loginout( $redirect, $display );
$redirect(string)
Optional path to redirect to on login/logout.
Default: ''
$display(true|false)
Default to echo and not return the link.
Default: true

Examples

0

#1 Basic usage:

wp_loginout();

// <a href="http://example.com/wp-login.php?action=logout&_wpnonce=3bd3336222">Log Out</a>
0

#2 Add Log In/Out link to nav menu

Simply add this code to your parent or child themes functions.php file to display a Log In/Out link in the secondary navigation menu of the Twenty Fourteen default theme for WordPress.

add_filter( 'wp_nav_menu_secondary_items','wpdocs_loginout_menu_link' );

/**
 * Append Login In/Out link to menu with a redirect to this page
 */
function wpdocs_loginout_menu_link( $menu ) {

	$loginout = wp_loginout( $_SERVER['REQUEST_URI'], false );
	$menu .= $loginout;

	return $menu;
}

Other themes like Twenty Thirteen may require you to add a class to the code like this example.

$loginout = sprintf( '<li class="nav-menu" class="menu-item">%s</li>',
	wp_loginout( $_SERVER['REQUEST_URI'], false )
);

Changelog

Since 1.5.0 Introduced.

wp_loginout() code WP 6.5.2

function wp_loginout( $redirect = '', $display = true ) {
	if ( ! is_user_logged_in() ) {
		$link = '<a href="' . esc_url( wp_login_url( $redirect ) ) . '">' . __( 'Log in' ) . '</a>';
	} else {
		$link = '<a href="' . esc_url( wp_logout_url( $redirect ) ) . '">' . __( 'Log out' ) . '</a>';
	}

	if ( $display ) {
		/**
		 * Filters the HTML output for the Log In/Log Out link.
		 *
		 * @since 1.5.0
		 *
		 * @param string $link The HTML link content.
		 */
		echo apply_filters( 'loginout', $link );
	} else {
		/** This filter is documented in wp-includes/general-template.php */
		return apply_filters( 'loginout', $link );
	}
}