在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工作,所以不建议我这个无论是
+0

货运*编程警告:''$ custom_url“'。 –

+0

@MarcB:不要告诉我有关变量的问题,其他的工作都是正常的,它只是在我的头文件被执行之前发送的头文件。任何在这方面的帮助将受到高度赞赏 –

好吧,我设法用钩来做到这一点。我使用下面的代码做了重定向。需要注意的是,表格操作设置为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 
    } 
} 

这是我现在可以考虑的解决方案,如果你觉得它们更有效,你可以建议你的答案。