函数文档

wp_original_referer_field()

💡 云策文档标注

概述

wp_original_referer_field() 函数用于在表单中检索或显示原始引用者隐藏字段。它生成一个名为 '_wp_original_http_referer' 的输入字段,值基于 wp_get_original_referer() 或回退到当前页面。

关键要点

  • 函数生成隐藏字段,用于表单中存储原始引用者信息。
  • 参数 $display 控制是否直接输出字段,默认为 true。
  • 参数 $jump_back_to 指定回退行为,可选 'previous' 或 'current'。
  • 返回值是原始引用者字段的字符串。
  • 相关函数包括 wp_get_original_referer()、wp_get_referer() 和 wp_unslash()。

代码示例

function wp_original_referer_field( $display = true, $jump_back_to = 'current' ) {
    $ref = wp_get_original_referer();

    if ( ! $ref ) {
        $ref = ( 'previous' === $jump_back_to ) ? wp_get_referer() : wp_unslash( $_SERVER['REQUEST_URI'] );
    }

    $orig_referer_field = '';

    if ( $display ) {
        echo $orig_referer_field;
    }

    return $orig_referer_field;
}

注意事项

  • 函数自 WordPress 2.0.4 版本引入。
  • 常用于 the_block_editor_meta_box_post_form_hidden_fields() 等函数中渲染隐藏表单字段。
  • 确保正确处理引用者数据,避免安全风险。

📄 原文内容

Retrieves or displays original referer hidden field for forms.

Description

The input name is ‘_wp_original_http_referer’ and will be either the same value of wp_referer_field() , if that was posted already or it will be the current page, if it doesn’t exist.

Parameters

$displaybooloptional
Whether to echo the original http referer.

Default:true

$jump_back_tostringoptional
Can be 'previous' or page you want to jump back to.
Default 'current'.

Return

string Original referer field.

Source

function wp_original_referer_field( $display = true, $jump_back_to = 'current' ) {
	$ref = wp_get_original_referer();

	if ( ! $ref ) {
		$ref = ( 'previous' === $jump_back_to ) ? wp_get_referer() : wp_unslash( $_SERVER['REQUEST_URI'] );
	}

	$orig_referer_field = '<input type="hidden" name="_wp_original_http_referer" value="' . esc_attr( $ref ) . '" />';

	if ( $display ) {
		echo $orig_referer_field;
	}

	return $orig_referer_field;
}

Changelog

Version Description
2.0.4 Introduced.