wp_get_referer() WP 2.0.4

Отримує реферер (referer) посилання (URL) тільки якщо це внутрішній URL – URL поточного сайту.

Поверне false, якщо реферер дорівнює URL поточної сторінки.

Ця функція – це об’єднання двох функцій: wp_validate_redirect() .

Реферер посилання (URL) – це URL-адреса сторінки, з якої користувач прийшов на поточну сторінку.

Працює на основі:
wp_get_raw_referer() ,
wp_validate_redirect()
1 раз – 0.001678 сек
(дуже повільно) | 50000 разів – 2.26 сек
(швидко) |
PHP 7.0.32, WP 5.1.1

Хуків немає.

Повертає

Строку|false. Реферер або false.

Використання

$referer = wp_get_referer();

Приклади

0

#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 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;
}

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *