wp_referer_field()
Выводит/получает скрытое input поле формы со значением URI текущей страницы (referer).
Ссылка referer — это URI текущего запроса — $_SERVER['REQUEST_URI']. Атрибут name равен _wp_http_referer.
<input type="hidden" name="_wp_http_referer" value="/current-page" />
Смотрите также:
Хуков нет.
Возвращает
Строку. HTML тег <input>.
Использование
wp_referer_field( $echo );
- $echo(логический)
- true — вывести на экран. false — возвратить в переменную для дальнейшей обработки.
По умолчанию: true
Примеры
#1 Редирект обратно
// Есть операция
if ( $doaction ) {
// делаем что-либо
}
// Нет операции, вернем пользователя обратно
elseif ( ! empty($_REQUEST['_wp_http_referer']) ) {
wp_safe_redirect( $_REQUEST['_wp_http_referer'] );
exit;
} #2 Добавим скрытое поле _wp_http_referer и проверим его
Добавим в нашу форму скрытое поле _wp_http_referer и затем проверим это поле, чтобы убедится, что запрос пришел именно с нужной нам страницы. Пусть, страница с формой имеет УРЛ: /my-page, тогда:
<form action="/proverka" method="post"> ... другие поля формы ... <?php wp_referer_field() ?> ... кнопка отправки формы ... </form>
wp_referer_field() выведет:
<input type="hidden" name="_wp_http_referer" value="/my-page" />
Теперь, после того как мы отправим данные они уйдут на страницу /proverka, где мы сможет проверить поле _wp_http_referer так:
if( $_POST['_wp_http_referer'] === '/my-page' ){
// Проверка пройдена, делаем что-то с данными
}
else {
// Проверка не пройдена!
}
Список изменений
| С версии 2.0.4 | Введена. |
Код wp_referer_field() wp referer field WP 6.9.4
function wp_referer_field( $display = true ) {
$request_url = remove_query_arg( '_wp_http_referer' );
$referer_field = '<input type="hidden" name="_wp_http_referer" value="' . esc_url( $request_url ) . '" />';
if ( $display ) {
echo $referer_field;
}
return $referer_field;
}