Php 提交表单后如何在WordPress中正确重定向URL?

Php 提交表单后如何在WordPress中正确重定向URL?,php,wordpress,redirect,Php,Wordpress,Redirect,在WordPress中提交表单后如何正确重定向?我真的到处找了,但还没有找到答案。我认为对这个问题的一个很好的解释可能会使许多人受益 在我的例子中,我有一个表单提交给它自己,如果表单验证,数据就会被保存,用户应该被重定向。如果失败,用户应该看到错误,或者根据错误的性质进行重定向 经过研究,最合适的方法似乎是使用函数wp\u redirect(),但我无法让它工作。我知道原因,因为标题已经发送出去了(这意味着浏览器已经开始输出,无法重定向)。我得到了那个角色。但是,我如何正确地使用这个函数呢?我不

在WordPress中提交表单后如何正确重定向?我真的到处找了,但还没有找到答案。我认为对这个问题的一个很好的解释可能会使许多人受益

在我的例子中,我有一个表单提交给它自己,如果表单验证,数据就会被保存,用户应该被重定向。如果失败,用户应该看到错误,或者根据错误的性质进行重定向

经过研究,最合适的方法似乎是使用函数
wp\u redirect()
,但我无法让它工作。我知道原因,因为标题已经发送出去了(这意味着浏览器已经开始输出,无法重定向)。我得到了那个角色。但是,我如何正确地使用这个函数呢?我不能把我的头绕在这个上面

我试着使用旧的
标题(位置:http://www.example.com/);响应。那也不走运

有人能详细说明一下吗?谢谢。

您有两个选择:

  • 写入并执行验证,如果没有错误,则从那里重定向,如果有错误,则设置错误
  • functions.php
    中编写,并在
    init
    状态下执行
编写自己的插件稍微复杂一点,但如果你能编程的话,也不难

如果您不想这样做,您需要在
functions.php
中执行类似的操作(此
functions.php
位于主题目录中。如果没有类似的文件,只需创建一个即可

当加载了所有重要的wordpress文件,但缓冲区中没有输出时,
init
上的操作总是发生的,因此您可以在此处使用
header();
wp_redirect();

add_action('init', 'myInit');
function myInit() {
    if (isset($_POST["mysubmit"])) {
        $errors = myFormValidation();
        if (empty($errors)) {
            //Do whatever you want here 
            header("Location: yoururl.php");
            die();
        }
        //Set the errors here
    }
}

function myFormValidation() {
    $errors = array();
    //do your validation here. check wordress documentation how to do this.
    return $errors;
}

也许你指的是报头响应,而不是请求?也许可以尝试使用js.Somethin,比如这个函数redirect(){window.location.href=”“}然后把这个函数叫做牙刷是的,回答。@yuyokk,是的,这可以用JS来完成,但是,应该有一种方法可以用WP核心函数来完成。我确信这不是火箭科学,我只是还没有弄明白。谢谢。Sweet@lolka\u bolka!谢谢!我今天一定要尝试一下。是的,我正在写我自己的插件--我只是在URL重定向方面遇到了一些问题。我想我的问题是,当在WP中加载内容时,我会感到困惑。所以我应该在
init
钩子中处理所有提交的表单,以便在需要时处理URL重定向?这是正确的方法吗?好的,这很好!你就是那个人!我完全理解如何实现URL重定向现在从现在开始,这是一个简单的晚餐!只是提醒那些有这个问题的人,把你的<代码>函数MyInTy[/]代码放在你的函数.PHP或插件文件中——如果你把它放在模板文件中,它就不起作用了。对于那些有同样问题的人,你可能想考虑这样的动作。('template_redirect'、'myInit');
因此可以使用条件标记。例如,
is_页面('login')