Handle WordPress login/logout redirects. Use when implementing custom redirect logic.
Scanned 2/12/2026
Install via CLI
openskills install majiayu000/claude-skill-registry---
name: login-redirector
description: Handle WordPress login/logout redirects. Use when implementing custom redirect logic.
---
# 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
```php
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
```php
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
```php
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
```php
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
No comments yet. Be the first to comment!