やりたいこと
カスタム投稿の検索で件数を表示させたい。
おこっている問題。
カスタムタクソノミーで、「料金」「悩み」「その他」があります。
「料金」は[全て][1000円以内][2000円以内]等のタームがあります。
「悩み」「その他」で検索をした場合にはうまく該当件数が表示されるのですが
「料金」だけで検索した場合何故が該当件数より多く表示されます。
全ての投稿数が3件なのに、「料金」だけで検索すると7件と表示されます。
該当件数の表示は下記で取得しています。
php
1<?php echo $wp_query->found_posts; ?>
現状の状態
カスタム投稿名:shampoo
カスタムタクソノミー:price|nayami|sonota
php
1#searchform.php 2 3#priceでの検索 4 <?php 5 $terms = get_terms('price'); 6 foreach ($terms as $term) { 7 if ($term === reset($terms)) { 8 echo '<label for="' .$term->slug .'"><input type="radio" name="price[]" value="' .$term->slug .'" checked id="' . $term->slug .'">' .$term->name . '</label>'; 9 } 10 else { 11 echo '<label for="' .$term->slug .'"><input type="radio" name="price[]" value="' .$term->slug .'" id="' . $term->slug .'">' .$term->name . '</label>'; 12 } 13 } 14 ?> 15 16#nayamiでの検索 17 <?php 18 $terms = get_terms('nayami'); 19 foreach ($terms as $term): ?> 20 <label for="<?php echo esc_attr($term->slug); ?>"><input type="checkbox" name="nayami[]" value="<?php echo esc_attr($term->slug); ?>" id="<?php echo esc_attr($term->slug); ?>"><?php echo esc_html($term->name); ?></label> 21 <?php endforeach; ?> 22 23#sonotaでの検索 24 <?php 25 $terms = get_terms('sonota'); 26 foreach ($terms as $term): ?> 27 <label for="<?php echo esc_attr($term->slug); ?>"><input type="checkbox" name="sonota[]" value="<?php echo esc_attr($term->slug); ?>" id="<?php echo esc_attr($term->slug); ?>"><?php echo esc_html($term->name); ?></label> 28 <?php endforeach; ?> 29 30 31<input type="hidden" name="s" id="s" /> 32<input type="submit" value="この条件で検索する" class="square_btn"> 33
php
1#search.php 2<p><?php echo $wp_query->found_posts; ?>件のシャンプーがヒット</p> 3<?php 4$args = array( 5 'post_type' => 'shampoo', 6 'tax_query' => array( 'relation' => 'AND', 7 array('taxonomy' => 'price', 'terms' => $_GET['price'], 'field' => 'slug','operator' => 'AND'), 8 array('taxonomy' => 'nayami', 'terms' => $_GET['nayami'], 'field' => 'slug','operator' => 'AND'), 9 array('taxonomy' => 'sonota', 'terms' => $_GET['sonota'], 'field' => 'slug','operator' => 'AND') 10 ), 11); 12query_posts($args); 13 ?> 14 15<?php if ( have_posts()): ?> 16<?php while ( have_posts() ) : the_post(); ?> 17 <?php the_title(); ?> 18***省略 19<?php endwhile; ?> 20<?php endif; ?> 21
どのようにすれば改善されますでしょうか?
ご教授お願い致します。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。