在Wordpress中的自定义插件页面中重定向
问题描述:
案例:我在页面中有一个表单,它使用户能够在简单的文本文件中添加某些值。现在我想在成功添加值后重定向到同一页面。在Wordpress中的自定义插件页面中重定向
读/写代码一切正常,我甚至把重定向代码,但这会显示警告header information is already sent
。
头我想:
header("Location: some_url_here_in_same_site");
wp_redirect("some_url_here_in_same_site");
我的表单代码:
if(isset($_POST['txtName'])}
// form validation code here
if(successful)
wp_redirect("some_url_here_in_same_site");
}
问题:
- 我们该怎么办redirection(重定向)在WordPress在我们的插件的形式提交后?
-
ob_start
wonb't工作,所以不建议我这个无论是
答
好吧,我设法用钩来做到这一点。我使用下面的代码做了重定向。需要注意的是,表格操作设置为admin-post.php
<form action="admin-post.php" name="frmHardware" id="frmHardware" method="post">
<!-- form elements -->
<!-- Essential field for hook -->
<input type="hidden" name="action" value="save_hw" />
</form>
然后在我的插件的主要文件,我增加了以下内容:
add_action('admin_init', 'RAGLD_dashboard_hardware_init'); // action hook add/remove hardware
其中,函数定义如下: 还要注意的是,第一参数来源于admin_post
,这是一个保留字,与上述表格中的action
隐藏字段结合在一起。
function RAGLD_dashboard_hardware_init() {
// checking for form submission when new hardware is added
add_action('admin_post_save_hw', 'RAGLD_process_hw_form');
}
形成上面已经add_action
提交在评价后,功能RAGLD_process_hw_form
将被称为其目的是要验证表单的条目,并相应地采取动作/重定向。
function RAGLD_process_hw_form() {
if (form_is_validated) {
wp_redirect(add_query_arg(array('page' => 'ragld/edit-hardware', 'action'=> 'InvalidData'), admin_url()));
} else {
//do something else
}
}
这是我现在可以考虑的解决方案,如果你觉得它们更有效,你可以建议你的答案。
货运*编程警告:''$ custom_url“'。 –
@MarcB:不要告诉我有关变量的问题,其他的工作都是正常的,它只是在我的头文件被执行之前发送的头文件。任何在这方面的帮助将受到高度赞赏 –