函数文档

wp_get_original_referer()

💡 云策文档标注

概述

wp_get_original_referer() 函数用于检索已发布的原始 HTTP referer,如果存在则返回其 URL。该函数依赖于 wp_validate_redirect() 进行验证,并处理 $_REQUEST['_wp_original_http_referer'] 变量。

关键要点

  • 函数返回原始 referer URL(成功时)或 false(失败时)。
  • HTTP referer 是服务器变量,注意 'referer' 是故意拼写错误的。
  • 函数内部检查 wp_validate_redirect() 是否已定义,否则返回 false。
  • 使用 wp_unslash() 移除字符串中的斜杠,确保数据安全。
  • 自 WordPress 2.0.4 版本引入。

代码示例

function wp_get_original_referer() {
    // Return early if called before wp_validate_redirect() is defined.
    if ( ! function_exists( 'wp_validate_redirect' ) ) {
        return false;
    }

    if ( ! empty( $_REQUEST['_wp_original_http_referer'] ) ) {
        return wp_validate_redirect( wp_unslash( $_REQUEST['_wp_original_http_referer'] ), false );
    }

    return false;
}

注意事项

  • 函数依赖于 wp_validate_redirect() 进行 URL 验证,确保重定向安全。
  • 相关函数包括 wp_original_referer_field() 用于表单隐藏字段。

📄 原文内容

Retrieves original referer that was posted, if it exists.

Return

string|false Original referer URL on success, false on failure.

More Information

HTTP referer is a server variable. ‘referer’ is deliberately miss-spelled.

Source

function wp_get_original_referer() {
	// Return early if called before wp_validate_redirect() is defined.
	if ( ! function_exists( 'wp_validate_redirect' ) ) {
		return false;
	}

	if ( ! empty( $_REQUEST['_wp_original_http_referer'] ) ) {
		return wp_validate_redirect( wp_unslash( $_REQUEST['_wp_original_http_referer'] ), false );
	}

	return false;
}

Changelog

Version Description
2.0.4 Introduced.