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 Requested redirect destination URL passed as a parameter. * @param WP_User|WP_Error $user WP_User object if login був 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
/wp-login.php
login_redirect
wp-login.php 1257
$redirect_to = apply_filters( 'login_redirect', $redirect_to, $requested_redirect_to, $user );
Де використовується хук у WordPress
Використання не знайдено.