WP初心者なのですが、Search & Filter Proを使って、カスタム投稿のタクソノミーで検索をしたいのですが、うまく行きません;
Search & Filter Proは買ってしまいましたが・・・使わないでできるのならば、そちらのでもいいかなと思っています。
フィールドグループ名は
「商品」です。
タクソノミーは2種類です。
「野菜」の中に、「トマト」「きゅうり」「レタス」・・・など
「産地」の中に、「北海道」「宮城」「長野」・・・など
が入る予定です。
やりたいことは
・カスタム投稿一覧ページで、タクソノミーの一覧を表示。
・タクソノミーのどれかを選択したら、それに該当する投稿が一覧に表示される。
・選択した時点で、絞り込みが開始される(submitを押さなくても検索してくれる)
・投稿詳細画面内のタクソノミーをクリックすると、一覧ページに戻り、選択したタクソノミーで絞り込み結果が表示される
例)
「野菜」の中の「トマト」と選択→トマトに該当する投稿を一覧表示
追加で「産地」の中の「北海道」を選択→トマトと北海道に該当する投稿を一覧表示
使っているプラグイン
・Custom Post Type UI
・Advanced Custom Fields
・Search & Filter Pro
一覧以外の詳細ページは問題なく表示できます。
以下のコードでデフォルトの検索結果は表示できました。
絞り込みができない状態です。
コード=======================
<?php echo do_shortcode( '[searchandfilter id="41"]' ); ?>
<p>検索結果:<span><?php echo $wp_query->found_posts; ?></span>件</p>
<div class="post_list">
<ul class="gallery">
<?php
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$posts_per_page = 9;
query_posts($query_string . '&posts_per_page='.$posts_per_page.'&paged=' . $paged);
$args = array(
'post_type' => 'works',
'posts_per_page' => $posts_per_page,
'paged' => $paged,
'order' => 'DESC',
);
?>
<?php $my_query_sample = new WP_Query( $args ); ?>
<?php if ($my_query_sample->have_posts()): ?>
<?php while ( $my_query_sample->have_posts() ) : $my_query_sample->the_post(); ?>
<li>
<a href="<?php the_permalink(); ?>">
<?php $image = get_field('メイン画像'); if( !empty($image) ): ?>
<span class="img_wrap"><img src="<?php echo $image['url']; ?>" alt="<?php echo $image['alt']; ?>" /></span>
<?php endif; ?>
<span class="industry">
<?php
$terms = get_the_terms( $post->ID, 'producttype' );
echo " ";
foreach ( $terms as $term ) {
echo "".$term->name."";
}
echo "";
?>
</span>
<span class="cat_name"><?php the_title(); ?></span></a>
</li>
<?php endwhile; ?>
</ul>
<?php else: //記事が1つも無い場合 ?>
<p>現在表示できる記事はありません。</p><br>
<div class="btn">
<a href="<?php echo esc_url(home_url()); ?>/">TOPへ戻る</a>
</div>
<?php endif; ?>
<?php if(function_exists('wp_pagenavi')) { //ページネーションプラグイン
wp_pagenavi(array('query'=>$my_query_sample));
} ?>
<?php wp_reset_postdata(); wp_reset_query();?>