wp_redirect() – Redirects to another page.

You appear to be a bot. Output may be restricted

Description

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 wp_redirect_location filters:

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

Usage

$bool = wp_redirect( $location, $status, $x_redirect_by );

Parameters

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

Returns

bool False if the redirect was cancelled, true otherwise.

Source

File name: wordpress/wp-includes/pluggable.php
Lines:

1 to 57 of 57
  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;
  }
 

 View on GitHub View on Trac