wp_referer_field() WP 2.0.4
Выводит/получает скрытое 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_save_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 5.6.2
function wp_referer_field( $echo = true ) {
$referer_field = '<input type="hidden" name="_wp_http_referer" value="' . esc_attr( wp_unslash( $_SERVER['REQUEST_URI'] ) ) . '" />';
if ( $echo ) {
echo $referer_field;
}
return $referer_field;
}