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;
}

Top ↑

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'


Top ↑

Return

(bool) False if the redirect was cancelled, true otherwise.


Top ↑

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;
	}


Top ↑

Changelog

Changelog
VersionDescription
5.4.0On invalid status codes, wp_die() is called.
5.1.0The $x_redirect_by parameter was added.
1.5.1Introduced.

The content displayed on this page has been created in part by processing WordPress source code files which are made available under the GPLv2 (or a later version) license by theĀ Free Software Foundation. In addition to this, the content includes user-written examples and information. All material is subject to review and curation by the WPPaste.com community.

Show More