繁体   English   中英

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

[英]How to properly URL redirect in WordPress after form submission?

在WordPress中提交表单后,如何正确重定向? 我确实在整个地方都进行了搜索,但尚未找到答案。 我认为对这个问题的一个好的解释可能会使许多人受益。

就我而言,我有一个提交给自己的表单,如果表单通过验证,则会保存数据并应重定向用户。 万一失败,用户应看到错误或根据错误的性质进行重定向。

经过研究,最正确的方法似乎是使用功能wp_redirect() ,但是我无法使其正常工作。 我知道为什么,因为标头已经发送出去(也就是说,浏览器已经开始输出并且无法重定向)。 我有那部分。 但是,如何正确使用此功能? 我不能把这个头缠住。

我尝试使用良好的旧header(Location: 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;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM