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'.
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. |