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. |
Skip to note 2 content
Steven Lin
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; }