簡體   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