函数文档

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.

Return

string[] Array of origin URLs.

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.