WordPressのデフォルトの検索機能を使って、
カスタム投稿の記事をカスタムタクソノミーで絞り込み検索する方法を実装したく、
以下のように書いているのですが、うまくいきません。
■以下フォームの例です
すべてカスタムタクソノミーによる選択肢です。
========
▼ラジオボタン
・はい ・いいえ
▼ラジオボタン
・有料 ・無料 ・見積もり
▼チェックボックス
□オプションA □オプションB □オプションC
「検索する」
========
上記の場合で、ラジオボタンの場合は
普通にしぼりこみできるのですが、
チェックボックスで複数にチェックした場合、
一つでも当てはまれば検索結果に表示されてしまいます。
それをチェックされているものに当てはまるものだけを検索結果に表示させたいです。
以下のように書いていますが、どうすればよいでしょうか。
そのままのコードは載せれないので省略しております。。
▼以下フォーム側
php
1<form class="search-form" method="get" action="<?php bloginfo('url'); ?>"> 2<input type="hidden" name="s" id="s"> 3<input type="hidden" value="カスタム投稿名" name="post_type" id="post_type"> 4<table> 5 <tr> 6 <th>ラジオボタン</th> 7 <td> 8 <ul> 9 <li><label><input type="radio" name="hai" value="はい" checked >はい</label></li> 10 <li><label><input type="radio" name="hai" value="いいえ" >いいえ</label></li> 11 </ul> 12 </td> 13 </tr> 14 <tr> 15 <th>ラジオボタン</th> 16 <td> 17 <ul> 18 <li><label><input type="radio" name="kakaku" value="有料" checked >有料</label></li> 19 <li><label><input type="radio" name="kakaku" value="無料" >無料</label></li> 20 <li><label><input type="radio" name="kakaku" value="見積もり" >見積もり</label></li> 21 </ul> 22 </td> 23 </tr> 24 <tr> 25 <th>チェックボックス</th> 26 <td> 27 <ul> 28 <li><label><input type="checkbox" name="option[]" value="オプションA">オプションA</label></li> 29 <li><label><input type="checkbox" name="option[]" value="オプションB">オプションB</label></li> 30 <li><label><input type="checkbox" name="option[]" value="オプションC">オプションC</label></li> 31 </ul> 32 </td> 33 </tr> 34</table> 35<button type="submit" name="submit">検索する</button> 36</form> 37 38 39
▼以下検索結果側
php
1 2<?php 3 4$hai = $_GET['hai']; 5$kakaku = $_GET['kakaku']; 6$option = $_GET['option']; 7 8 9$args = array( 10 'post_type' => 'カスタム投稿名', 11 'tax_query' => array( 12 'relation' => 'AND', 13 array( 14 'taxonomy'=>'hai', 15 'terms'=> $hai, 16 'include_children'=>false, 17 'field'=>'slug', 18 'operator'=>'AND' 19 ), 20 array( 21 'taxonomy'=>'kakaku', 22 'terms'=> $kakaku, 23 'include_children'=>false, 24 'field'=>'slug', 25 'operator'=>'AND' 26 ), 27 array( 28 'taxonomy'=>'option', 29 'terms'=> $option, 30 'include_children'=>false, 31 'field'=>'slug', 32 'operator'=>'AND' 33 ), 34 ), 35 ); 36$query = new WP_Query( $args ); 37?> 38<?php if ( $query->have_posts() ) : ?> 39<?php while ( have_posts() ) : the_post(); ?> 40投稿内容 41<?php endwhile; endif; wp_reset_query(); ?> 42 43
この状態で、チェックボックスが複数選択されている場合、
当てはまる記事だけを出したいです。。
参考にしたサイトは以下になります。
http://kotori-blog.com/wordpress/refinement_search/
教えていただけますと幸いです。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。