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 1347
$redirect_to = apply_filters( 'login_redirect', $redirect_to, $requested_redirect_to, $user );