2012-03-05 3 views
0

私はWordpressのテーマでカスタムフォーム用のphp mail()関数を開発しました。これは、それ自体に送信される通常のフォーム(空のaction属性を持つ)です。 functions.phpには、inc\mail.phpが含まれています。これは、POSTデータが存在するかどうかをチェックし、存在する場合は、その関数を実行します。最後に、関数はPHPのmail()を介して電子メールを送信し、trueを返します。なぜWordpressはPOSTフォームで404エラーを投げますか?別のテンプレートではなく、あるテンプレートで送信しますか?

これは、カスタム投稿タイプ(「投稿」や「ページ」ではなく)を持つ1つの投稿に対しては完全に機能しますが、通常のWordpressの「ページ」で同じスクリプトを使用しようとすると、よく(と電子メールを送信する)、しかしそれは404エラーをスローします。ブラウザのアドレスバーのURLは変更されていません(ページの固定リンクが表示されます)が、ページが見つからないようです。

次に、ブラウザのアドレスバーをクリックしてEnterキーを押してページをリフレッシュすると(POSTデータをもう一度送信しないで)、は再び通常のページを表示します。

私は困惑しています。それはなぜでしょうか?

編集:ここに解決策が見つかりました:https://wordpress.stackexchange.com/questions/11749/why-when-i-submit-a-form-in-wordpress-it-loads-a-404-page-though-url-is-correct @DigitalDesignDjの提案に感謝します。

答えて

1

あなたの関数がページに表示する値を返すように聞こえますが、それは電子メールの送信に成功したときだけです。関数の出力を抑止する必要があります。なぜなら、wp_headの上で起こっていると推測しており、テンプレートプロセスを起動する呼び出しを妨害するからです。

これは推測ですが、その出力を見て、それは私が考えることができるすべてです。

あなたは、入力のためのhttps://wordpress.stackexchange.com/

+0

おかげで尋ねるより良い運を持っているかもしれない - それは良い推測ですが、私が最初に同じことを思ったが、機能は何も出力していない、それが唯一の変数を埋めるだ...そう私はそれがヘッダーの問題だとは思わない。私はWordPressのフォーラムにも良いショットを与えるだろう:)ありがとう! – bobsoap

+0

DigitalDesignDj、あなたは正しいです。 Wordpress.stackには既に答えがありました:http://wordpress.stackexchange.com/questions/11749/why-when-i-submit-a-form-in-wordpress-it-loads-a-404-page-though- url-is-correct - あなたの答えを正しいものとしてマークします。再度、感謝します! – bobsoap

関連する問題