wp_get_referer()
Получает реферер ссылку (referer URL), только если это внутренний URL - URL текущего сайта.
Вернет false, если реферер равен текущей странице.
Эта функция — это объединение двух функций: wp_get_raw_referer() и wp_validate_redirect().
Реферер ссылка (URL) — это URL адрес страницы, с которой пользователь пришел на текущую страницу.
Хуков нет.
Возвращает
Строку|false
. Реферер URL или false.
Использование
$referer = wp_get_referer();
Примеры
#1 Выведем ссылку «Вернуться назад»
Допустим мы в админке сайта перешли по ссылке на страницу нашего плагина и нам нужно на этой странице среди прочего вывести ссылку «Вернуться назад».
Решение такой задачи может выглядеть так:
<?php $referer_url = wp_get_referer() if( $referer_url ){ ?> <p><a class="button" href="<?php echo esc_url( $referer_url ); ?>">Вернуться назад</a></p> <?php }
Тут надо заметить, что такая ссылка будет показана, только если на страницу зашли с другой страницы. Но если на этой же странице, например, обновить данные формы, то реферер будет равен текущему URL и ссылка «Вернуться назад» не будет выведена. В этом случае, чтобы ссылка «Вернуться назад» работала как нужно, её надо куда-то сохранить при первом посещении страницы (например в транзитные опции) и при совпадении URL брать от туда.
#2 Что выводит функция
echo wp_get_referer(); // /some-page?foo=bar
Список изменений
С версии 2.0.4 | Введена. |
Код wp_get_referer() wp get referer WP 6.7.1
function wp_get_referer() { // Return early if called before wp_validate_redirect() is defined. 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; }