返回 Skill 列表
extension
分类: 开发与工程无需 API Key

login-redirector

处理WordPress登录/登出重定向。在实现自定义重定向逻辑时使用。

person作者: jakexiaohubgithub

Login Redirector

Instructions

When setting up login or logout redirects:

  1. Login redirect: Use login_redirect filter
  2. Logout redirect: Use logout_redirect filter
  3. Parameters: Both receive $redirect_to, $request, $user
  4. Return the redirect URL

Filter Parameters

add_filter('login_redirect', $callback, 10, 3);
add_filter('logout_redirect', $callback, 10, 3);

/**
 * @param string $redirect_to The redirect destination URL
 * @param string $request The requested redirect destination URL
 * @param WP_User|WP_Error|null $user The logged-in user or error
 */

Common Patterns

1. Redirect by User Role

add_filter('login_redirect', 'retrologin_redirect_by_role', 10, 3);
function retrologin_redirect_by_role(string $redirect_to, string $request, $user): string {
    if ($user instanceof WP_User) {
        if (user_can($user, 'administrator')) {
            return admin_url();
        }
        return home_url('/dashboard/');
    }
    return $redirect_to;
}

2. Keep Requested URL

add_filter('login_redirect', 'retrologin_keep_request', 10, 3);
function retrologin_redirect_keep_request(string $redirect_to, string $request, $user): string {
    // Use the page they were trying to access
    if (!empty($request) && strpos($request, 'wp-admin') === false) {
        return $request;
    }
    return $redirect_to;
}

3. Custom Logout Redirect

add_filter('logout_redirect', 'retrologin_logout_redirect', 10, 3);
function retrologin_logout_redirect(string $redirect_to, string $requested_redirect_to, $user): string {
    return home_url('/thank-you/');
}

Guidelines

  • Always check if $user is a valid WP_User
  • Handle WP_Error cases (failed login)
  • Return $redirect_to as fallback
  • Test redirects with different user roles