get_allowed_http_origins()
云策文档标注
概述
get_allowed_http_origins() 函数用于检索允许的 HTTP 来源列表,返回一个包含源 URL 的数组。它基于 admin_url() 和 home_url() 的主机名生成默认允许的来源,并可通过 allowed_http_origins 过滤器进行自定义。
关键要点
- 函数返回 string[] 类型的数组,包含允许的 HTTP 来源 URL。
- 默认允许的来源包括 admin_url() 和 home_url() 的 HTTP 和 HTTPS 版本的主机名。
- 使用 allowed_http_origins 过滤器可以修改允许的来源列表。
- 相关函数包括 admin_url()、home_url() 和 apply_filters()。
- 该函数自 WordPress 3.4.0 版本引入。
代码示例
function get_allowed_http_origins() {
$admin_origin = parse_url( admin_url() );
$home_origin = parse_url( home_url() );
// @todo Preserve port?
$allowed_origins = array_unique(
array(
'http://' . $admin_origin['host'],
'https://' . $admin_origin['host'],
'http://' . $home_origin['host'],
'https://' . $home_origin['host'],
)
);
/**
* Changes the origin types allowed for HTTP requests.
*
* @since 3.4.0
*
* @param string[] $allowed_origins Array of allowed HTTP origins.
*/
return apply_filters( 'allowed_http_origins', $allowed_origins );
}注意事项
- 函数内部使用 parse_url() 提取主机名,但注释中提到了端口保留的待办事项(@todo Preserve port?),开发者需注意当前实现可能不包含端口信息。
- allowed_http_origins 过滤器允许开发者扩展或修改允许的来源,适用于自定义跨域请求场景。
原文内容
Retrieves list of allowed HTTP origins.
Source
function get_allowed_http_origins() {
$admin_origin = parse_url( admin_url() );
$home_origin = parse_url( home_url() );
// @todo Preserve port?
$allowed_origins = array_unique(
array(
'http://' . $admin_origin['host'],
'https://' . $admin_origin['host'],
'http://' . $home_origin['host'],
'https://' . $home_origin['host'],
)
);
/**
* Changes the origin types allowed for HTTP requests.
*
* @since 3.4.0
*
* @param string[] $allowed_origins Array of allowed HTTP origins.
*/
return apply_filters( 'allowed_http_origins', $allowed_origins );
}
Hooks
- apply_filters( ‘allowed_http_origins’, string[] $allowed_origins )
-
Changes the origin types allowed for HTTP requests.
Changelog
| Version | Description |
|---|---|
| 3.4.0 | Introduced. |