以下のようなコードを使用し、wordpressでカテゴリーのAND検索を実装しています。
<aside id="secondary" class="blog-sidebar" role="complementary"> <!-- 入力用検索 --> <?php get_search_form(); ?> <!-- カテゴリー検索 --> <form method="get" action="<?php bloginfo( 'url' ); ?>"> <input type="hidden" name="s" value="" /><!--追加--> <p>都道府県</p> <?php wp_dropdown_categories('name=cats[]&show_option_none=都道府県&child_of=20'); ?> <p>季節</p> <?php wp_dropdown_categories('name=cats[]&show_option_none=季節&child_of=13'); ?> <p>季節</p> <?php wp_dropdown_categories('name=cats[]&show_option_none=プラン&child_of=14'); ?> <input id="submit" type="submit" value="検索" /> </form> </aside>
functions.php
1function customize_main_query($query) { 2 if ( is_admin() || ! $query->is_main_query() ) 3 return; 4 5 //検索クエリのカスタマイズ 6 if ( $query->is_search()) { 7 if(isset( $_GET['cats'])){$cat = $_GET['cats'];}else{$cat = "";} 8 9 if($cat){ 10 $taxquerysp[] = array( 11 'taxonomy'=>'category', 12 'terms'=> $cat, 13 'include_children'=>false, 14 'field'=>'term_id', 15 'operator'=>'AND' 16 ); 17 $query->set('tax_query' , $taxquerysp); 18 } 19 } 20} 21add_action( 'pre_get_posts', 'customize_main_query' );
上記のコードで問題なく動くのですが、2つあるドロップダウンのうち、1つだけで絞込みをかけると、検索結果には何も表示されなくなってしまいました。(検索キーワードに一致するものはありませんでした。と表示されてしまいます)
■実現したいこと
複数あるドロップダウンのうち、1つだけしかカテゴリーを選ばなくても絞込みが正常に行われるようにしたいのですが可能でしょうか?
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー