函数文档

wp_get_raw_referer()

💡 云策文档标注

概述

wp_get_raw_referer() 函数用于从 '_wp_http_referer' URL 查询变量或 HTTP referer 中检索未经验证的引用来源。它返回字符串或 false,不应用于重定向场景。

关键要点

  • 函数优先检查 $_REQUEST['_wp_http_referer'],如果存在且为字符串,则返回去除反斜杠的值。
  • 如果 '_wp_http_referer' 无效,则回退到 $_SERVER['HTTP_REFERER'] 作为引用来源。
  • 返回类型为字符串(成功时)或 false(失败时),不进行验证,因此不适用于重定向,应使用 wp_get_referer() 替代。
  • 函数自 WordPress 4.5.0 版本引入,相关函数包括 wp_unslash() 和 wp_get_referer()。

代码示例

function wp_get_raw_referer() {
    if ( ! empty( $_REQUEST['_wp_http_referer'] ) && is_string( $_REQUEST['_wp_http_referer'] ) ) {
        return wp_unslash( $_REQUEST['_wp_http_referer'] );
    } elseif ( ! empty( $_SERVER['HTTP_REFERER'] ) ) {
        return wp_unslash( $_SERVER['HTTP_REFERER'] );
    }

    return false;
}

注意事项

此函数检索的引用来源未经验证,可能不可靠,开发者应避免在安全敏感操作(如重定向)中使用,推荐使用 wp_get_referer() 进行验证。


📄 原文内容

Retrieves unvalidated referer from the ‘_wp_http_referer’ URL query variable or the HTTP referer.

Description

If the value of the ‘_wp_http_referer’ URL query variable is not a string then it will be ignored.

Do not use for redirects, use wp_get_referer() instead.

Return

string|false Referer URL on success, false on failure.

Source

function wp_get_raw_referer() {
	if ( ! empty( $_REQUEST['_wp_http_referer'] ) && is_string( $_REQUEST['_wp_http_referer'] ) ) {
		return wp_unslash( $_REQUEST['_wp_http_referer'] );
	} elseif ( ! empty( $_SERVER['HTTP_REFERER'] ) ) {
		return wp_unslash( $_SERVER['HTTP_REFERER'] );
	}

	return false;
}

Changelog

Version Description
4.5.0 Introduced.