WP_GET_REFERER() │ WP 2.0.4: Описание функции и примеры использования

# WP_GET_REFERER() │ WP 2.0.4

Функция **WP_GET_REFERER()** позволяет получить информацию о предыдущем URL (ссылке), с которой пришел пользователь. Эта информация хранится в переменной '_wp_http_referer' или в HTTP-заголовках. 

Если предыдущий URL совпадает с текущим, функция вернет значение **false**.

### Использует
- wp_get_raw_referer()
- wp_validate_redirect()

**Производительность:**
- 1 раз — 0.001678 сек (очень медленно)
- 50000 раз — 2.26 сек (быстро)
- PHP 7.0.32, WP 5.1.1

**Хуки:** Нет.

## Возвращаемое значение

- **Строка | false**: URL предыдущей страницы при успешном выполнении, false при неудаче.

## Применение

Чтобы использовать функцию, вам нужно просто вызвать ее:

```php
wp_get_referer();

Примеры

Пример 1: Отображение ссылки "Назад"

Допустим, вы находитесь в административной панели сайта и перешли на страницу вашего плагина. Вам нужно отобразить ссылку "Назад". Вот как это можно сделать:

$return_url = wp_get_referer();

if( $return_url ){
    ?>
    

Вернуться

Обратите внимание, что эта ссылка будет отображаться только в том случае, если вы пришли на эту страницу с другой. Если же вы обновите страницу, реферер будет равен текущему URL, и ссылка "Назад" не появится. Чтобы обеспечить корректную работу этой ссылки, можно сохранить предыдущий URL при первом посещении страницы (например, используя временные опции) и извлекать его оттуда при необходимости.

Пример 2: Что выводит функция

Вы можете просто вывести реферер с помощью следующего кода:

echo wp_get_referer(); // /some-page?foo=bar

История изменений

  • С версии 2.0.4 — функция была внедрена.

Код функции

Вот как выглядит код функции wp_get_referer() в файле wp-includes/functions.php:


function wp_get_referer() {
// Возврат сразу, если функция wp_validate_redirect() не определена.
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;

}

Связанные функции

  • _doing_it_wrong()
  • cache_javascript_headers()
  • do_robots()
  • download_url()
  • get_privacy_policy_url()
  • maybe_convert_table_to_utf8mb4()
  • nocache_headers()
  • show_admin_bar()
  • wp_check_browser_version()
  • wp_die()
  • wp_editor()
  • wp_get_raw_referer()
  • wp_install_defaults()
  • wp_magic_quotes()
  • wp_mail()
  • wp_oembed_get()
  • wp_redirect()
  • wp_safe_redirect()
  • wp_star_rating()
  • wp_timezone_choice()
  • wp_validate_redirect()

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *