wp_get_referer()
Отримує реферер (referer) посилання (URL) тільки якщо це внутрішній URL – URL поточного сайту.
Поверне false, якщо реферер дорівнює URL поточної сторінки.
Ця функція – це об’єднання двох функцій: wp_validate_redirect() .
Реферер посилання (URL) – це URL-адреса сторінки, з якої користувач прийшов на поточну сторінку.
(дуже повільно) | 50000 разів – 2.26 сек
(швидко) |
PHP 7.0.32, WP 5.1.1
Хуків немає.
Повертає
Строку|false
. Реферер або false.
Використання
$referer = wp_get_referer();
Приклади
#1 Виведемо посилання «Повернутись назад»
Припустимо, ми в адмінці сайту перейшли за посиланням на сторінку нашого плагіна і нам потрібно на цій сторінці серед іншого вивести посилання «Повернутись назад».
Вирішення такої задачі може виглядати так:
<?php if( $return_url = wp_get_referer() ){ ?> <p><a class="button" href="<?php echo esc_url( $return_url ); ?>">Повернутись назад</a></p> <?php }
Тут слід зазначити, що таке посилання буде показано, тільки якщо на сторінку зайшли з іншої сторінки. Але якщо на цій же сторінці, наприклад, оновити дані форми, то реферер дорівнюватиме поточному URL і посилання «Повернутись назад» не буде виведено. У цьому випадку, щоб посилання «Повернутись назад» працювало як потрібно, його треба кудись зберегти при першому відвідуванні сторінки (наприклад, у транзитні опції) та при збігу URL брати від туди.
список змін
З версії 2.0.4 | Введено. |
Код wp_get_referer() wp get referer WP 6.0.2
function wp_get_referer() { if ( ! function_exists( 'wp_validate_redirect' ) ) { return false; } $ref = wp_get_raw_referer(); if ( $ref && wp_unslash( $_SERVER['REQUEST_URI'] ) !== $ref && home_url() . wp_unslash( $_SERVER['REQUEST_URI'] ) !== $ref ) { return wp_validate_redirect( $ref, false ); } return false; }