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.6.2
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; }