ユーザーが自分のフォームの選択項目を変更するたびに、どの求人結果がページに表示されるかをフィルター処理しようとしています。選択項目には、以下のコードが動的に取り込まれ、スラッグとラベルの値が割り当てられます。
<div style="background: url('<?php bloginfo( 'template_directory'); ?>/images/drop-arrow2.png') no-repeat;" id="cat-select">
<form name="job_select" action="<?php bloginfo('url'); ?>/jobs.php" method="get">
<select class="job_cats" name="position_name" onchange='<?php echo ".$category->category_nicename."; ?>'>
<?php
// For every child of blog
$post_count = 1;
$categories = get_categories('child_of=16');
foreach ($categories as $category) {
$option = '<option value="'.$category->category_nicename.'">';
$option .= $category->cat_name;
$option .= '</option>';
echo $option;
$post_count++;
}
?>
</select>
</form>
</div>
それからコードは私のメインWPループに移動します。ここで私のすべての投稿はこのクエリを使ってページにレンダリングされます -
<?php
$node_id = 0;
$args = array(
'post_type' => 'jobs',
'category_name' => $_GET['position_name']
);
$the_query = new WP_Query( $args );
?>
結果をフィルタリングするために$category->cat_name
(スラッグ)を 'category_name'引数に入れたいのですが、どうすればよいのかわかりませんa)これらの新しいフィルタリングされた結果を表示するためにページを更新する(AJAXが必要ですか?)これを行うには?)およびb)選択ボックスの現在選択されているインデックスをパラメーターとして 'category_name'に渡す方法はありますが、$_GET['position_name']
を使用してみましたが、結果が得られませんでした。
私のページがどのように見えるかを視覚的に示すために、スクリーンショットをここに見ることができます Form Screengrab どんな提案でも大いに評価されるでしょう。
私のコメントが質問に答えるように見えた:
URLパラメータにアクセスするには$wp_query->query_vars['myvar']
が必要です。 http://wordpress.org/support/topic/how-to-pass-value-in-wordpress-url 、例えば:
<?php
global $wp_query;
$node_id = 0;
$args = array(
'post_type' => 'jobs',
'category_name' => $wp_query->query_vars['position_name']
);
$the_query = new WP_Query( $args );
質問の他の部分は実際にはWordPressの問題ではないので、Stack Overflowがそれらを尋ねるのに最も良い場所です。ページを更新するには、onchangeイベントのための JavaScriptリダイレクトを使用してページを自分自身にリダイレクトするか 、または AJAXを使用してコンテンツを更新します。ページが更新されないonchangeイベント .