Using WordPress ‘login_redirect’ PHP filter

The login_redirect WordPress PHP Filter lets you modify the URL users are redirected to after a successful login.

Usage

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

function your_custom_function_name($redirect_to, $requested_redirect_to, $user) {
  // your custom code here

  return $redirect_to;
}

Parameters

  • $redirect_to (string): The default redirect destination URL after login.
  • $requested_redirect_to (string): The requested redirect destination URL passed as a parameter.
  • $user (WP_User|WP_Error): WP_User object if login was successful, WP_Error object otherwise.

More information

See WordPress Developer Resources: login_redirect

Examples

Redirect to the Homepage

Redirect users to the homepage after login:

function redirect_to_homepage($redirect_to, $requested_redirect_to, $user) {
  return home_url();
}
add_filter('login_redirect', 'redirect_to_homepage', 10, 3);

Redirect Based on User Role

Redirect users to different pages based on their role:

function redirect_by_role($redirect_to, $requested_redirect_to, $user) {
  if ($user instanceof WP_User) {
    if (in_array('administrator', (array) $user->roles)) {
      return admin_url();
    } else {
      return home_url();
    }
  }
  return $redirect_to;
}
add_filter('login_redirect', 'redirect_by_role', 10, 3);

Redirect to Custom Dashboard

Redirect users to a custom dashboard page after login:

function redirect_to_custom_dashboard($redirect_to, $requested_redirect_to, $user) {
  return home_url('/custom-dashboard/');
}
add_filter('login_redirect', 'redirect_to_custom_dashboard', 10, 3);

Redirect to Requested URL

Redirect users to the requested URL after login, if available:

function redirect_to_requested_url($redirect_to, $requested_redirect_to, $user) {
  if (!empty($requested_redirect_to)) {
    return $requested_redirect_to;
  }
  return $redirect_to;
}
add_filter('login_redirect', 'redirect_to_requested_url', 10, 3);

Redirect to User Profile Page

Redirect users to their profile page after login:

function redirect_to_user_profile($redirect_to, $requested_redirect_to, $user) {
  if ($user instanceof WP_User) {
    return home_url('/profile/' . $user->user_login);
  }
  return $redirect_to;
}
add_filter('login_redirect', 'redirect_to_user_profile', 10, 3);