- Описание функции
- Примеры использования
- Получение реферера при успешной отправке формы
- Проверка реферера перед выполнением действия
- Перенаправление на реферер после авторизации
- Использование реферера для установки значения поля ввода
- Получение реферера из AJAX-запроса
- Вопросы и ответы
- Как получить referer из ‘_wp_http_referer’?
- Как получить referer из HTTP referer?
- Что возвращает функция wp_get_referer()?
- Как обработать ситуацию, когда функция wp_get_referer() возвращает false?
- Как использовать полученный referer URL в WordPress?
- Какие данные содержит referer URL, полученный с помощью функции wp_get_referer()?
- Какие могут быть причины, по которым функция wp_get_referer() возвращает false?
- Какие альтернативы функции wp_get_referer() существуют в WordPress?
- Связанные элементы
Описание функции
Функция wp_get_referer() используется для получения URL-адреса, с которого был сделан запрос на текущую страницу. Она извлекает значение из переменной _wp_http_referer или из HTTP заголовка referer.
Функция полезна, когда требуется получить информацию о предыдущей странице, с которой пользователь перешел на текущую страницу. Например, это может быть полезно для создания ссылок «Назад» или для отслеживания источника трафика.
Использование
wp_get_referer(): string|false Вызов функции wp_get_referer() возвращает строку с URL-адресом предыдущей страницы или false в случае неудачи.
Функция возвращает URL-адрес предыдущей страницы в виде строки в случае успеха или false в случае неудачи.
Примеры использования
Получение реферера при успешной отправке формы
if ( 'POST' === $_SERVER['REQUEST_METHOD'] ) {
// Получаем реферера с помощью функции wp_get_referer()
$referer = wp_get_referer();
if ( $referer ) {
// Реферер найден, выполняем необходимые действия
// ...
} else {
// Реферер не найден, обрабатываем ошибку
// ...
}
}
В данном примере мы проверяем, является ли текущий запрос методом POST. Если да, то мы вызываем функцию wp_get_referer() для получения реферера. Если реферер найден, мы выполняем необходимые действия, иначе обрабатываем ошибку.
Проверка реферера перед выполнением действия
function my_custom_action() {
// Получаем реферера с помощью функции wp_get_referer()
$referer = wp_get_referer();
if ( $referer && strpos( $referer, 'example.com' ) !== false ) {
// Реферер содержит 'example.com', выполняем необходимые действия
// ...
} else {
// Реферер не содержит 'example.com', обрабатываем ошибку
// ...
}
}
add_action( 'my_custom_hook', 'my_custom_action' );
В этом примере мы создаем пользовательское действие с помощью функции add_action(). Внутри этого действия мы вызываем функцию wp_get_referer() для получения реферера и проверяем, содержит ли реферер указанный домен ‘example.com’. Если содержит, мы выполняем необходимые действия, иначе обрабатываем ошибку.
Перенаправление на реферер после авторизации
function my_login_redirect( $redirect_to, $request, $user ) {
// Получаем реферера с помощью функции wp_get_referer()
$referer = wp_get_referer();
if ( $referer ) {
// Реферер найден, перенаправляем на него
return $referer;
} else {
// Реферер не найден, перенаправляем на главную страницу
return home_url();
}
}
add_filter( 'login_redirect', 'my_login_redirect', 10, 3 );
В данном примере мы создаем фильтр login_redirect с помощью функции add_filter(). Внутри этого фильтра мы вызываем функцию wp_get_referer() для получения реферера. Если реферер найден, мы перенаправляем пользователя на него, иначе перенаправляем на главную страницу.
Использование реферера для установки значения поля ввода
<form action="example.php" method="post">
<input type="hidden" name="referer" value="<?php echo esc_url( wp_get_referer() ); ?>">
<input type="submit" value="Submit">
</form>
В этом примере мы создаем форму с помощью тега <form>. Внутри формы мы добавляем скрытое поле ввода с именем «referer» и значением, полученным с помощью функции wp_get_referer(). Значение реферера будет передано на сервер при отправке формы.
Получение реферера из AJAX-запроса
jQuery.ajax({
url: 'example.php',
type: 'POST',
data: {
action: 'my_ajax_action',
referer: document.referrer
},
success: function( response ) {
// Обработка успешного ответа
// ...
},
error: function( xhr, status, error ) {
// Обработка ошибки
// ...
}
});
В данном примере мы отправляем AJAX-запрос с помощью функции jQuery.ajax(). Внутри запроса мы передаем дополнительные данные, включая реферер, который получаем с помощью свойства document.referrer. Реферер будет доступен на сервере в параметре $_POST[‘referer’].
Вопросы и ответы
Как получить referer из ‘_wp_http_referer’?
Функция wp_get_referer() используется для извлечения referer из ‘_wp_http_referer’.
Пример кода:
$referer = wp_get_referer();
Как получить referer из HTTP referer?
Функция wp_get_referer() также может извлечь referer из HTTP referer.
Пример кода:
$referer = wp_get_referer();
Что возвращает функция wp_get_referer()?
Функция wp_get_referer() возвращает referer URL в виде строки в случае успеха и false в случае ошибки.
Пример кода:
$referer = wp_get_referer();
if ( $referer ) {
echo 'Referer: ' . $referer;
} else {
echo 'Failed to retrieve referer.';
}
Как обработать ситуацию, когда функция wp_get_referer() возвращает false?
Если функция wp_get_referer() возвращает false, можно выполнить дополнительные действия для обработки этой ситуации.
Пример кода:
$referer = wp_get_referer();
if ( $referer ) {
echo 'Referer: ' . $referer;
} else {
echo 'Failed to retrieve referer.';
// Дополнительные действия при ошибке.
}
Как использовать полученный referer URL в WordPress?
Функция wp_get_referer() возвращает URL-адрес, с которого была выполнена текущая страница. Для использования полученного referer URL в WordPress, нужно вызвать функцию wp_get_referer() и сохранить результат в переменную:
$referer = wp_get_referer(); Полученный URL-адрес можно использовать для различных целей, например, для редиректа пользователя обратно на страницу, с которой он пришел:
wp_redirect( $referer ); Какие данные содержит referer URL, полученный с помощью функции wp_get_referer()?
Функция wp_get_referer() возвращает строку с URL-адресом referer или false в случае ошибки. Результат может содержать полный URL-адрес страницы, с которой пользователь пришел на текущую страницу, включая протокол (http:// или https://), доменное имя, путь и параметры запроса.
Какие могут быть причины, по которым функция wp_get_referer() возвращает false?
Функция wp_get_referer() может вернуть false в следующих случаях:
- Если referer URL не был установлен или не был передан в запросе.
- Если referer URL был изменен или удален в процессе обработки запроса.
- Если функция вызывается вне контекста HTTP-запроса, например, при выполнении скрипта из командной строки.
Какие альтернативы функции wp_get_referer() существуют в WordPress?
В WordPress также доступны следующие альтернативы для получения referer URL:
- Глобальная переменная
$_SERVER['HTTP_REFERER']содержит referer URL, но ее использование не рекомендуется из-за возможности подделки данных. - Функция
wp_get_raw_referer()возвращает referer URL без обработки и фильтрации данных.
Функция
wp_get_referer()возвращает referer URL, с которого была выполнена текущая страница. Полученный URL-адрес можно использовать для редиректа пользователя или для других целей. Следует учитывать возможность возвращения false в случае ошибки или отсутствия referer URL. В таких случаях можно использовать альтернативные методы получения referer URL, такие как глобальная переменная$_SERVER['HTTP_REFERER']или функцияwp_get_raw_referer().
Связанные элементы
- Функция
wp_get_raw_referer(): Возвращает HTTP-заголовок Referer без обработки. - Функция
wp_get_original_referer(): Возвращает оригинальный URL-адрес Referer из ‘_wp_original_http_referer’. - Функция
wp_referer_field(): Выводит поле формы с URL-адресом Referer.