A WordPress-centric search engine for devs and theme authors



wp_redirect ›

Since1.5.1
Deprecatedn/a
wp_redirect ( $location, $status = 302 )
Parameters: (2)
  • (string) $location The path to redirect to.
    Required: Yes
  • (int) $status Status code to use.
    Required: No
    Default: 302
Returns:
  • (bool) False if $location is not provided, true otherwise.
Defined at:
Codex:

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 {@see 'wp_redirect'} and {@see 'wp_redirect_location'} hooks:

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


Source

function wp_redirect($location, $status = 302) {
	global $is_IIS;

	/**
	 * Filters the redirect location.
	 *
	 * @since 2.1.0
	 *
	 * @param string $location The path to redirect to.
	 * @param int    $status   Status code to use.
	 */
	$location = apply_filters( 'wp_redirect', $location, $status );

	/**
	 * Filters the redirect status code.
	 *
	 * @since 2.3.0
	 *
	 * @param int    $status   Status code to use.
	 * @param string $location The path 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

	header("Location: $location", true, $status);

	return true;
}