フォーム/リンクからPOSTメソッドを介して2つのWordpress投稿の間でデータをやり取りしようとしています。ただし、2番目の投稿ではPOSTデータを取得できないようです。ファイル名を持たず、ディレクトリパスのみを持つ私のパーマリンク構造と関係があるのかどうか疑問に思います。
POSTメソッドを介して隠しフィールドを介してデータを送信している間、ページ1は2ページに「リンクする」ために以下のフォームを使います:
<form name="offer" action="http://themotoroilevaluator.com/members-blog/motor-oil-bible-special-offer/" method="post" style="padding: 0px; margin: 0px;">
<input type="hidden" name="discount" value="yes">
<INPUT TYPE="image" SRC="/members-blog/wp-content/uploads/2011/12/special-offer.png" HEIGHT="350" WIDTH="550" BORDER="0" ALT="Discount Plus Additional Special Bonus Downloads - Click Here">
</form>
それから、2ページ目に、私はPOST配列からその隠しフィールドからデータを取得することになっている次のphpコードがあります:
$discount = $_POST['discount'];
十分に単純なはずですが、うまくいきません。私は、スタンドアローンのphpページにまったく同じコードを配置し、そのページにフォームを「アクション」として投稿してみましたが、うまくいきました。 Wordpressでこれを機能させるにはどうすればいいですか。
$ discountまたは$ _POST ['discount']をエコーしても何も生成されず、print_r($ _ POST)は空の配列を生成します。何かご意見は?
WPによって削除されないように、クエリvarを登録する必要があります。これをあなたのfunctions.phpファイルに追加してください。
function foo_add_query_var($vars) {
$vars[] = 'discount';
return $vars;
}
add_filter('query_vars', 'foo_add_query_var');
テンプレートでこれを呼び出すには、単に次のようにします。
$discount = get_query_var('discount');