これはこの投稿の続きです。
フォームを作成し、ドロップダウンとして表示される正しい分類法の用語を取得することができましたが、私は自分のフォームでどのようなアクションを使用するべきか、また結果ページで同じフォームで選択したオプションを思い出すことができますか
これは私がこれまでに書いたコードで、query_posts()を設定して、分類の用語 'type'、 'period'および 'duration'をユーザーが選択したものに設定したカスタム投稿 'ftevent'を取得します。
そして、これは各ドロップダウンで選択されたオプションを呼び戻そうとするそのコードで見ることができるでしょう関数osu_list_terms()です:
function osu_list_terms($osu_tax, $osu_recall) {
// list terms in fttype taxonomy
$taxonomy = $osu_tax;
$tax_terms = get_terms($taxonomy);
foreach ($tax_terms as $tax_term) {
echo '<option' . $osu_recall . '>' . $tax_term->name . '</option>';
}
}
今、これは進行中の作業です、それで私が直面することになる他のいくつかの問題があると確信しています(カスタムフィールド 'StartEventDate'によるカスタム投稿の順序付けなど)、しかしこの時点で、私はWordpressがこのフォームのようなものでどのように機能するかを考え出します。
私は慣れている
<?php echo $_SERVER['PHP_SELF']; ?>
フォームが同じページに送信されるようにフォーム用。私はこれで同じことができることを望んでいたが、WordpressはこのようなURLにリダイレクトし、私がこのフォームを挿入した現在のページテンプレートの代わりにarchive.phpテンプレートを使う:
/?fttype=Group+walks&ftperiod=Weekday&ftduration=Half-day&showfilter=true
これを行うための「正しい」方法はありますか?検索結果用のテンプレートのスタイルを設定する方法と、アーカイブページを使用して結果を表示する方法(タグクラウドの結果でも使用される方法)について少し混乱しています。
あなたが提供できるヒントはありますか?
ありがとう、
おす
action
属性を空のままにすると、フォームは現在のURLにポストバックします。
ただし、、method
属性がget
の場合、フォームは現在のURL - 現在のクエリ文字列にポストバックされます。
現在のクエリ文字列を保持したい場合は、隠し入力を使用して現在のパラメータを複製できます。