钩子文档

wp_redirect_status

💡 云策文档标注

概述

wp_redirect_status 是一个 WordPress 过滤器,用于修改重定向时使用的 HTTP 响应状态码。开发者可以通过此 Hook 自定义重定向行为,例如根据协议版本调整状态码。

关键要点

  • 过滤器名称:wp_redirect_status
  • 参数:$status(HTTP 响应状态码,整数类型)和 $location(重定向路径或 URL,字符串类型)
  • 应用场景:在 wp_redirect() 函数中调用,允许开发者动态修改重定向状态码
  • 引入版本:WordPress 2.3.0

代码示例

add_filter( 'wp_redirect_status', 'http_status_version_downgrade');

function http_status_version_downgrade($status, $location) {

    static $HTTP11_to_10 = array(
        203 => 200,
        303 => 302, 307 => 302, /* 305 => No 1.0 equivalent ,*/
    );

    if( $_SERVER['SERVER_PROTOCOL'] == 'HTTP/1.0' 
        && isset($HTTP11_to_10[$status]) ) 
    {
        return $HTTP11_to_10[$status];
    }

    return $status;
}

📄 原文内容

Filters the redirect HTTP response status code to use.

Parameters

$statusint
The HTTP response status code to use.
$locationstring
The path or URL to redirect to.

Source

$status = apply_filters( 'wp_redirect_status', $status, $location );

Changelog

Version Description
2.3.0 Introduced.

User Contributed Notes

  1. Skip to note 2 content

    Example Migrated from Codex:

    Convert HTTP/1.1-only status codes to 1.0 equivalents when using HTTP/1.0

    add_filter( 'wp_redirect_status', 'http_status_version_downgrade');
    
    function http_status_version_downgrade($status, $location) {
    
        static $HTTP11_to_10 = array(
            203 => 200,
            303 => 302, 307 => 302, /* 305 => No 1.0 equivalent ,*/
        );
    
        if( $_SERVER['SERVER_PROTOCOL'] == 'HTTP/1.0' 
            && isset($HTTP11_to_10[$status]) ) 
        {
            return $HTTP11_to_10[$status];
        }
    
        return $status;
    }