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

Это pluggable функция — т.е. её можно заменить из плагина. Это значит, что она будет работать (подключается) только после подключения всех плагинов, а до этого момента функция еще не определена... Поэтому нельзя вызывать эту и зависящие от неё функции прямо из кода плагина. Их нужно вызывать через хук plugins_loaded или позднее, например хук init.

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.2

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