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
обязательный
$status
int
необязательный
= 302
$x_redirect_by
string|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. |

