WordPress.org

Ready to get started?Download WordPress

Codex

Attention Interested in functions, hooks, classes, or methods? Check out the new WordPress Code Reference!

Plugin API/Filter Reference/login redirect

The login_redirect filter is used to change the location redirected to after logging in. This could be the location set by the "redirect_to" parameter sent to the login page.

Parameters

$redirect_to
(string) (required) The redirect destination URL.
Default: None
$requested_redirect_to
(string) (required) The requested redirect destination URL passed as a parameter.
Default: None
$user
(WP_User or WP_Error) (required) WP_User object if login was successful, WP_Error object otherwise.
Default: None

Examples

This example redirects admins to the dashboard and other users to the homepage. Make sure you use add_filter outside of is_admin(), since that function is not available when the filter is called.

/**
 * Redirect user after successful login.
 *
 * @param string $redirect_to URL to redirect to.
 * @param string $request URL the user is coming from.
 * @param object $user Logged user's data.
 * @return string
 */
function my_login_redirect( $redirect_to, $request, $user ) {
	//is there a user to check?
	global $user;
	if ( isset( $user->roles ) && is_array( $user->roles ) ) {
		//check for admins
		if ( in_array( 'administrator', $user->roles ) ) {
			// redirect them to the default place
			return $redirect_to;
		} else {
			return home_url();
		}
	} else {
		return $redirect_to;
	}
}

add_filter( 'login_redirect', 'my_login_redirect', 10, 3 );

Redirect all logins to the homepage with an anonymous function (php 5.3+).

add_filter( 'login_redirect', create_function( '$url,$query,$user', 'return home_url();' ), 10, 3 );

Notes

You can register the login_redirect filter to use all 3 parameters like this: <?php add_filter'login_redirect''filter_function_name'10); ?>

In the example, 'filter_function_name' is the function WordPress should call during the login process. Note that filter_function_name should be unique function name. It cannot match any other function name already declared.

The $current_user global may not be available at the time this filter is run. So you should use the $user global or the $user parameter passed to this filter.

Changelog

Since: Version 3.0

Source Files

login_redirect is located in wp-login.php


Resources

Related