1

query_postsWordpress を使用して送信されたフォームの値を使用して新しいクエリを作成しようとしていますが、悲惨なことに失敗していますwp_dropdown_categories

フォームは次のとおりです。

<form action="<?php bloginfo('url')/filter.php" method="GET">
  <?php wp_dropdown_categories('child_of=1&name=colour'); ?>
  <?php wp_dropdown_categories('child_of=2&name=type'); ?>
  <input type="submit" name="submit" value="view" />
</form>

次のHTMLをレンダリングします(スペースを節約するために少し簡略化されています)

<form action="http://localhost:8888/project/wp-content/themes/project/filter.php" method="GET">
  <select name='colour' id='colour' class='postform' >
    <option value="3">Red</option>
    <option value="4">Blue</option>
    <option value="5">Blue</option>
  </select>
  <select name='type' id='colour' class='postform' >
    <option value="6">Small</option>
    <option value="7">Medium</option>
    <option value="8">Large</option>
  </select>
  <input type="submit" name="submit" value="view" />
</form>

そして、ここにfilter.phpファイルの内容があります

<?php
  $args = array(
    'category__in' => array(HELP HERE);
  query_posts( $args );

  // The Loop
    while ( have_posts() ) : the_post();
      echo '<li>';the_title();
      echo '</li>';
    endwhile;

  // Reset Query
  wp_reset_query();
?>

ここで最も重要な要素は、これが柔軟である必要があるということです。つまり、select の 1 つだけが使用されている場合でも、クエリは機能するはずです。

私はほとんどそこにいると思いますcategory__in => array()。選択したオプションの値から の配列を構築しているだけです。

助けてくれてありがとう!

4

1 に答える 1

0

これは今のところうまくいくようです。

<?php
  $args = array(
    'category__in' => array($_GET['colour'], $_GET['type'])
  );
  query_posts( $args );

// The Loop
  while ( have_posts() ) : the_post();
    echo '<li>';the_title();
    echo '</li>';
  endwhile;

// Reset Query
  wp_reset_query();
?>
于 2013-07-29T10:44:08.383 に答える