функция since 2.3.0

wp_safe_redirect()

Проверено на WordPress 6.9, обновлено Источник: WordPress Developer Resources.

Сигнатура

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

Описание

Проверяет, использует ли $location разрешённый хост, если у него есть абсолютный путь. Таким образом, плагин может добавить или удалить разрешённые хосты из списка.
Если хост не разрешён, то перенаправление по умолчанию идёт на wp-admin по адресу siteurl. Это предотвращает вредоносные перенаправления на другой хост, но применяется лишь в нескольких местах.
Примечание: wp_safe_redirect() не завершает выполнение автоматически, и почти всегда после него должен следовать вызов exit;:
wp_safe_redirect( $url );
exit;Завершением можно также выборочно управлять, используя wp_safe_redirect() в качестве условия совместно с фильтрами 'wp_redirect' и 'wp_redirect_status':
if ( wp_safe_redirect( $url ) ) {
exit;
}

Оригинал (английский)

Checks whether the $location is using an allowed host, if it has an absolute path. A plugin can therefore set or remove allowed host(s) to or from the list.

If the host is not allowed, then the redirect defaults to wp-admin on the siteurl instead. This prevents malicious redirects which redirect to another host, but only used in a few places.

Note: wp_safe_redirect() does not exit automatically, and should almost always be followed by a call to exit;:

wp_safe_redirect( $url );
exit;

Exiting can also be selectively manipulated by using wp_safe_redirect() as a conditional in conjunction with the ‘wp_redirect’ and ‘wp_redirect_status’ filters:

if ( wp_safe_redirect( $url ) ) {
    exit;
}

Параметры

$location string обязательный
Путь или URL, на который выполняется перенаправление.
$status int необязательный = 302
Код статуса HTTP-ответа для использования. Значение по умолчанию '302' (Moved Temporarily).
$x_redirect_by string|false необязательный = 'WordPress'
Приложение, выполняющее перенаправление, или false, чтобы не указывать. Значение по умолчанию 'WordPress'.

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

bool

Исходный код

wp-includes/pluggable.php:1628

function wp_safe_redirect( $location, $status = 302, $x_redirect_by = 'WordPress' ) {

	// Need to look at the URL the way it will end up in wp_redirect().
	$location = wp_sanitize_redirect( $location );

	/**
	 * Filters the redirect fallback URL for when the provided redirect is not safe (local).
	 *
	 * @since 4.3.0
	 *
	 * @param string $fallback_url The fallback URL to use by default.
	 * @param int    $status       The HTTP response status code to use.
	 */
	$fallback_url = apply_filters( 'wp_safe_redirect_fallback', admin_url(), $status );

	$location = wp_validate_redirect( $location, $fallback_url );

	return wp_redirect( $location, $status, $x_redirect_by );
}

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

ВерсияОписание
5.1.0 The return value from wp_redirect() is now passed on, and the $x_redirect_by parameter was added.
2.3.0 Introduced.

Что будем искать? Например,Продвижение

Этот сайт использует куки-файлы. Оставаясь на сайте, Вы соглашаетесь на их использование. Для получения дополнительной информации, пожалуйста, ознакомьтесь с политикой в отношении персональных данных.