web-dev-qa-db-ja.com

通過 POST 1つのデータ WP 他に投稿

フォーム/リンクから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)は空の配列を生成します。何かご意見は?

2
Michael

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');
2
Brian Fegter