[WordPress] どのように正しく URL リダイレクト ワードプレスのフォームの送信後ですか?

スポンサーリンク

質問

正しくをリダイレクトする方法ワードプレスのフォームの送信後ですか?私は本当にあちこち検索しているし、まだこれに答えを見つけていません。この質問に良い説明が多くを受けることができますだと思います

私の場合、フォーム検証、データが保存されており、ユーザーをリダイレクトする必要がありますが、それ自体に送信するフォームがあります。それが失敗した場合に、ユーザー エラーが表示されますまたはエラーの性質に応じてリダイレクトされます

後調査、最も適切な方法は、

wp_redirect()

関数を使用すると思われるが、働くためにそれを得ることができません。ヘッダーが既に送信されて (つまり、ブラウザーの出力を開始したし、リダイレクトできない) ので、なぜを知ってください。その部分を得た。しかし、その後、この関数を正しく使用する方法ですか?この 1 つの周り私の頭をラップできません

良い古い

header(Location: http://www.example.com/);

応答を使用しようとしました。そのいずれかではありません運

誰もすることができますこれに手の込んだか?ありがとう

答え

2 つの選択肢がある:

  • 独自のプラグイン を書くと、検証を行うし、エラーがない場合、そこからリダイレクトがあった場合は、エラーを設定または
  • functions.php

    でそれを書くし、

    init

    の状態でそれを行う

独自のプラグインを書くことは少しより複雑なそんなに難しくありませんプログラミングすることができる場合

これを行うにしたくない場合、あなたの

functions.php

で、このような何かをする必要があります (この

functions.php

はあなたのテーマ ディレクトリあります。このようなファイルがない場合はちょうど 1 つを作成します

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;
}

http://stackoverflow.com/questions/29232764/how-to-properly-url-redirect-in-wordpress-after-form-submission

スポンサーリンク

Leave a Reply