функция since 1.5.1

wp_redirect()

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

Сигнатура

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

Описание

Примечание: wp_redirect() не завершает выполнение автоматически, и почти всегда после него должен следовать вызов exit;:
wp_redirect( $url );
exit;Завершением можно также выборочно управлять, используя wp_redirect() в качестве условия совместно с фильтрами 'wp_redirect' и 'wp_redirect_status':
if ( wp_redirect( $url ) ) {
exit;
}

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

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

wp_redirect( $url );
exit;

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

if ( wp_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:1485

function wp_redirect( $location, $status = 302, $x_redirect_by = 'WordPress' ) {
	global $is_IIS;

	/**
	 * Filters the redirect location.
	 *
	 * @since 2.1.0
	 *
	 * @param string $location The path or URL to redirect to.
	 * @param int    $status   The HTTP response status code to use.
	 */
	$location = apply_filters( 'wp_redirect', $location, $status );

	/**
	 * Filters the redirect HTTP response status code to use.
	 *
	 * @since 2.3.0
	 *
	 * @param int    $status   The HTTP response status code to use.
	 * @param string $location The path or URL to redirect to.
	 */
	$status = apply_filters( 'wp_redirect_status', $status, $location );

	if ( ! $location ) {
		return false;
	}

	if ( $status < 300 || 399 < $status ) {
		wp_die( __( 'HTTP redirect status code must be a redirection code, 3xx.' ) );
	}

	$location = wp_sanitize_redirect( $location );

	if ( ! $is_IIS && 'cgi-fcgi' !== PHP_SAPI ) {
		status_header( $status ); // This causes problems on IIS and some FastCGI setups.
	}

	/**
	 * Filters the value of the `X-Redirect-By` HTTP header.
	 *
	 * Allows applications to identify themselves when they're doing a redirect.
	 *
	 * @since 5.1.0
	 *
	 * @param string|false $x_redirect_by The application doing the redirect or false to omit the header.
	 * @param int          $status        Status code to use.
	 * @param string       $location      The path to redirect to.
	 */
	$x_redirect_by = apply_filters( 'x_redirect_by', $x_redirect_by, $status, $location );
	if ( is_string( $x_redirect_by ) ) {
		header( "X-Redirect-By: $x_redirect_by" );
	}

	header( "Location: $location", true, $status );

	return true;
}

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

ВерсияОписание
5.4.0 On invalid status codes, wp_die() is called.
5.1.0 The $x_redirect_by parameter was added.
1.5.1 Introduced.

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

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