WordPress at a glance

wp_redirect() WP 1.0

Redirects to another page.

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 {@see 'wp_redirect_location'} filters:

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

This is a pluggable function, and it can be replaced by a plugin. It means that this function is defined (works) only after all plugins are loaded (included), but before this moment this function has not defined. Therefore, you cannot call this and all functions depended on this function directly from a plugin code. They need to be called on plugins_loaded hook or later, for example on init hook.

Function replacement (override) — in a plugin you can create a function with the same name, then it replace this function.

Is the basis for: wp_safe_redirect()
Return

true/false. False if the redirect was cancelled, true otherwise.

Usage

wp_redirect( $location, $status, $x_redirect_by );
$location(string) (required)
The path or URL to redirect to.
$status(int)
HTTP response status code to use. (Moved Temporarily).
Default: '302'
$x_redirect_by(string)
The application doing the redirect.
Default: 'WordPress'

Notes

  • Global. true/false. $is_IIS

Changelog

Since 1.5.1 Introduced.
Since 5.1.0 The $x_redirect_by parameter was added.

Code of wp redirect: wp-includes/pluggable.php WP 5.2.3

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

	$location = wp_sanitize_redirect( $location );

	if ( ! $is_IIS && PHP_SAPI != 'cgi-fcgi' ) {
		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;
}

Related Functions

From tag: redirect

More from tag: Supporting (helper utility auxiliary)

More from category: Uncategorized

No comments
    Hello, !     Log In . Register