login_redirect
Позволяет изменить URL куда будет перенаправлен пользователь после входа на сайт (после авторизации).
Использование
add_filter( 'login_redirect', 'wp_kama_login_redirect_filter', 10, 3 );
/**
* Function for `login_redirect` filter-hook.
*
* @param string $redirect_to The redirect destination URL.
* @param string $requested_redirect_to The requested redirect destination URL passed as a parameter.
* @param WP_User|WP_Error $user WP_User object if login was successful, WP_Error object otherwise.
*
* @return string
*/
function wp_kama_login_redirect_filter( $redirect_to, $requested_redirect_to, $user ){
// filter...
return $redirect_to;
}
- $redirect_to(строка)
- URL который нашел WP, чтобы перенаправить.
- $requested_redirect_to(строка)
- Оригинальный «сырой» URL перенаправления, из параметра $_REQUEST['redirect_to']. На его основе WP получил параметр $redirect_to.
- $user(WP_User/WP_Error)
- Текущий пользователь (объект WP_User), если авторизация прошла успешно. Или объект WP_Error.
Примеры
#1 Перенаправление на домашнюю страницу после входа
В этом примере администраторы перенаправляются на дефолтную страницу, а другие пользователи - на домашнюю страницу.
add_filter( 'login_redirect', 'my_login_redirect', 10, 3 );
/**
* 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?
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;
}
}
Список изменений
| С версии 3.0.0 | Введена. |
Где вызывается хук
В файле: /wp-login.php
login_redirect
wp-login.php 1359
$redirect_to = apply_filters( 'login_redirect', $redirect_to, $requested_redirect_to, $user );