wp_redirect() WordPress Function
The wp_redirect() function is used to redirect users to a different page. This function can be used in a number of different scenarios, such as when a user needs to be redirected to a login page or when a user needs to be redirected to a different website. The wp_redirect() function is a versatile tool that can be used in a variety of situations.
wp_redirect( string $location, int $status = 302, string $x_redirect_by = 'WordPress' ) #
Redirects to another page.
Description
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_location’ filters:
if ( wp_redirect( $url ) ) {
exit;
}
Parameters
- $location
(string)(Required)The path or URL to redirect to.
- $status
(int)(Optional) HTTP response status code to use. Default '302' (Moved Temporarily).
Default value: 302
- $x_redirect_by
(string)(Optional) The application doing the redirect.
Default value: 'WordPress'
Return
(bool) False if the redirect was cancelled, true otherwise.
Source
File: wp-includes/pluggable.php
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 X-Redirect-By header. * * Allows applications to identify themselves when they're doing a redirect. * * @since 5.1.0 * * @param string $x_redirect_by The application doing the redirect. * @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; }
Expand full source codeCollapse full source codeView on TracView on GitHub
Changelog
Version | Description |
---|---|
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. |