wp_safe_redirect()

Выполняет безопасное (локальное) перенаправление с использованием wp_redirect()
Функция WordPress
INT 2.3.0
WordPress Icon
Содержание
  1. Описание функции
  2. Примеры использования
  3. Перенаправление на главную страницу сайта
  4. Отправка пользователя на страницу авторизации
  5. Перенаправление на внешний URL
  6. Установка пользовательского HTTP-статуса
  7. Перенаправление с указанием приложения
  8. Перенаправление с заданным HTTP-статусом
  9. Вопросы и ответы
  10. Как использовать wp_safe_redirect() для перенаправления на другую страницу?
  11. Как изменить статус кода HTTP при использовании wp_safe_redirect()?
  12. Как указать приложение, выполняющее перенаправление с помощью wp_safe_redirect()?
  13. Как отменить перенаправление с помощью wp_safe_redirect()?
  14. Как обрабатывать ошибки при использовании wp_safe_redirect()?
  15. Как использовать wp_safe_redirect() для перенаправления на внешний URL?
  16. Как использовать wp_safe_redirect() внутри шаблона WordPress?
  17. Как использовать wp_safe_redirect() для перенаправления на страницу аутентификации?
  18. Как использовать wp_safe_redirect() для перенаправления на страницу ошибки 404?
  19. Связанные элементы

Описание функции

Функция wp_safe_redirect() выполняет безопасное (локальное) перенаправление с помощью функции wp_redirect(). Она используется для перенаправления пользователя на другую страницу или URL. Функция проверяет, является ли URL, на который происходит перенаправление, локальным, чтобы предотвратить открытие вредоносных или небезопасных сайтов.

Важно отметить, что функция wp_safe_redirect() не выполняет непосредственного перенаправления, а только устанавливает заголовки для перенаправления. Фактическое перенаправление происходит после выполнения всех остальных действий в коде.

Использование

wp_safe_redirect( string $location, int $status = 302, string $x_redirect_by = 'WordPress' ): bool

Функция wp_safe_redirect() принимает три параметра:

  • $location (обязательный) — путь или URL, на который нужно перенаправить.
  • $status (необязательный) — HTTP-код ответа для использования. По умолчанию установлено значение ‘302’ (Moved Temporarily).
  • $x_redirect_by (необязательный) — приложение, выполняющее перенаправление. По умолчанию установлено значение ‘WordPress’.

Функция wp_safe_redirect() возвращает значение true, если перенаправление выполнено успешно, и false, если перенаправление было отменено.


/**
 * Пример использования функции wp_safe_redirect()
 *
 * Перенаправляет пользователя на страницу "example.com/new-page" с кодом ответа 301.
 * Приложение, выполняющее перенаправление, указано как "MyApp".
 */
wp_safe_redirect( 'http://example.com/new-page', 301, 'MyApp' );

В данном примере функция wp_safe_redirect() используется для перенаправления пользователя на страницу «example.com/new-page» с использованием кода ответа 301 (Moved Permanently). Приложение, выполняющее перенаправление, указано как «MyApp».

Примеры использования

Перенаправление на главную страницу сайта


// Перенаправление на главную страницу сайта
wp_safe_redirect( home_url() );
exit;

В данном примере функция wp_safe_redirect() используется для перенаправления пользователя на главную страницу сайта.
Функция home_url() возвращает URL главной страницы сайта.
После выполнения перенаправления следует использовать функцию exit для прекращения выполнения скрипта.

Отправка пользователя на страницу авторизации


// Перенаправление пользователя на страницу авторизации
wp_safe_redirect( wp_login_url() );
exit;

В данном примере функция wp_safe_redirect() используется для перенаправления пользователя на страницу авторизации.
Функция wp_login_url() возвращает URL страницы авторизации.
После выполнения перенаправления следует использовать функцию exit для прекращения выполнения скрипта.

Перенаправление на внешний URL


// Перенаправление на внешний URL
wp_safe_redirect( 'https://example.com' );
exit;

В данном примере функция wp_safe_redirect() используется для перенаправления пользователя на внешний URL.
В качестве параметра передается URL, на который нужно перенаправить пользователя.
После выполнения перенаправления следует использовать функцию exit для прекращения выполнения скрипта.

Установка пользовательского HTTP-статуса


// Установка пользовательского HTTP-статуса
wp_safe_redirect( home_url(), 301 );
exit;

В данном примере функция wp_safe_redirect() используется для перенаправления пользователя на главную страницу сайта с пользовательским HTTP-статусом 301 (Moved Permanently).
Второй параметр функции wp_safe_redirect() позволяет установить пользовательский HTTP-статус.
После выполнения перенаправления следует использовать функцию exit для прекращения выполнения скрипта.

Перенаправление с указанием приложения


// Перенаправление с указанием приложения
wp_safe_redirect( home_url(), 302, 'MyApp' );
exit;

В данном примере функция wp_safe_redirect() используется для перенаправления пользователя на главную страницу сайта с указанием приложения «MyApp».
Третий параметр функции wp_safe_redirect() позволяет указать приложение, которое выполняет перенаправление.
После выполнения перенаправления следует использовать функцию exit для прекращения выполнения скрипта.

Перенаправление с заданным HTTP-статусом


// Перенаправление с заданным HTTP-статусом
wp_safe_redirect( home_url(), 307 );
exit;

В данном примере функция wp_safe_redirect() используется для перенаправления пользователя на главную страницу сайта с заданным HTTP-статусом 307 (Temporary Redirect).
Второй параметр функции wp_safe_redirect() позволяет задать HTTP-статус.
После выполнения перенаправления следует использовать функцию exit для прекращения выполнения скрипта.

Вопросы и ответы

Как использовать wp_safe_redirect() для перенаправления на другую страницу?

Функция wp_safe_redirect() используется для безопасного (локального) перенаправления на другую страницу. Она является оберткой для функции wp_redirect().

Для использования wp_safe_redirect() необходимо передать обязательный параметр $location, содержащий путь или URL для перенаправления.


wp_safe_redirect( $location );

Как изменить статус кода HTTP при использовании wp_safe_redirect()?

При использовании wp_safe_redirect() можно изменить статус кода HTTP, который будет возвращен в ответ на перенаправление. По умолчанию используется код ‘302’ (Moved Temporarily).

Для изменения статуса кода HTTP необходимо передать второй параметр $status с желаемым значением.


wp_safe_redirect( $location, $status );

Как указать приложение, выполняющее перенаправление с помощью wp_safe_redirect()?

По умолчанию, при использовании wp_safe_redirect(), в качестве приложения, выполняющего перенаправление, указывается ‘WordPress’.

Можно указать свое приложение, передав третий параметр $x_redirect_by с желаемым значением.


wp_safe_redirect( $location, $status, $x_redirect_by );

Как отменить перенаправление с помощью wp_safe_redirect()?

Функция wp_safe_redirect() выполняет безопасное (локальное) перенаправление, используя wp_redirect(). Она возвращает значение false, если перенаправление было отменено, и true в противном случае.

Чтобы отменить перенаправление, необходимо проверить возвращаемое значение функции. Если оно равно false, то перенаправление было отменено и можно выполнить дополнительные действия.


if ( ! wp_safe_redirect( $location ) ) {
    // Перенаправление было отменено, выполнение дополнительных действий
}

Как обрабатывать ошибки при использовании wp_safe_redirect()?

При использовании функции wp_safe_redirect() возможны ошибки, которые могут возникнуть при перенаправлении. Для обработки ошибок можно использовать блок try/catch.


try {
    wp_safe_redirect( $location );
} catch ( Exception $e ) {
    // Обработка ошибки перенаправления
}

Как использовать wp_safe_redirect() для перенаправления на внешний URL?

Функция wp_safe_redirect() по умолчанию предназначена для локального перенаправления, но ее также можно использовать для перенаправления на внешний URL.

Для этого необходимо указать полный URL в качестве значения параметра $location.


wp_safe_redirect( 'https://www.example.com' );

Как использовать wp_safe_redirect() внутри шаблона WordPress?

Функция wp_safe_redirect() используется для безопасного перенаправления на другую страницу или URL внутри шаблона WordPress.

Пример использования:


<?php
    $url = home_url( '/my-account/' );
    wp_safe_redirect( $url );
    exit;
?>

Как использовать wp_safe_redirect() для перенаправления на страницу аутентификации?

Функция wp_safe_redirect() может быть использована для перенаправления пользователя на страницу аутентификации.

Пример использования:


<?php
    $url = wp_login_url();
    wp_safe_redirect( $url );
    exit;
?>

Как использовать wp_safe_redirect() для перенаправления на страницу ошибки 404?

Функция wp_safe_redirect() может быть использована для перенаправления пользователя на страницу ошибки 404.

Пример использования:


<?php
    $url = home_url( '/page-not-found/' );
    wp_safe_redirect( $url, 404 );
    exit;
?>

Функция wp_safe_redirect() позволяет безопасно перенаправлять пользователя на другие страницы или URL внутри шаблона WordPress. Она может быть использована для перенаправления на страницу аутентификации или страницу ошибки 404. При использовании этой функции необходимо убедиться, что перенаправление происходит только на локальные адреса, чтобы предотвратить возможность атаки перенаправлением.

Связанные элементы

  • Функция wp_redirect(): выполняет перенаправление на указанный URL.
  • Функция wp_get_referer(): возвращает URL страницы, с которой был выполнен запрос.
  • Функция wp_validate_redirect(): проверяет, является ли URL безопасным для перенаправления.
  • Функция wp_sanitize_redirect(): очищает URL от небезопасных символов.
  • Функция wp_redirect_admin_locations(): перенаправляет на соответствующую административную страницу.
  • Хук wp_redirect: позволяет изменить URL перенаправления.
  • Хук wp_redirect_status: позволяет изменить HTTP-код статуса для перенаправления.
Обсуждение