Claude-skill-registry login-redirector

Handle WordPress login/logout redirects. Use when implementing custom redirect logic.

install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/login-redirector" ~/.claude/skills/majiayu000-claude-skill-registry-login-redirector && rm -rf "$T"
manifest: skills/data/login-redirector/SKILL.md
source content

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