発生している問題
WPでエリアで絞り込むポータルサイトを制作しています。
絞り込み検索結果が表示されるsearch.phpの記事数とページ数が合わず404となってしまいます。
---現状---
・1ページ10件表示の設定(管理画面の表示設定で10件にセット)
・「全国」というタームは全ての市区町村に混ざって表示されるように設定
・「八王子市」に該当する記事数=8
・「全国」に該当する記事数=10
・「エリア」を八王子市にセットし検索→八王子市+全国に該当する記事一覧が表示される→ページ送りの2ページ目をクリック→404
・「武蔵野市」に該当する記事数=15
・「全国」に該当する記事数=10
・「エリア」を武蔵野市にセットし検索→武蔵野市+全国に該当する記事一覧が表示される→ページ送りの3ページ目をクリック→404
・上記からすると、「全国」がカウントされていないページ数で表示されてしまっている?
・表示される記事には「全国」に該当する記事も混ざって表示されている
該当のソースコード
search.php
<?php if($tax01){ $taxquerysp[] = array( 'taxonomy'=>'area_cat', 'terms'=> array($tax01,'allarea-c'), 'include_children'=>false, 'field'=>'slug', 'operator'=>'IN' ); } elseif(!$tax01 && $tax01_p){ $taxquerysp[] = array( 'taxonomy'=>'area_cat', 'terms'=> array($tax01_p,'allarea'), 'field'=>'slug', 'operator'=>'IN' ); } if($tax02){ $taxquerysp[] = array( 'taxonomy'=>'genre_cat', 'terms'=> $tax02, 'include_children'=>false, 'field'=>'slug', 'operator'=>'AND' ); } elseif(!$tax02 && $tax02_p){ $taxquerysp[] = array( 'taxonomy'=>'genre_cat', 'terms'=> $tax02_p, 'include_children'=>false, 'field'=>'slug', 'operator'=>'AND' ); } $taxquerysp['relation'] = 'AND'; ?> <?php $args = array( 'post_type' => 'shop', 'tax_query' => $taxquerysp, 's' => $s, 'paged' => get_query_var( 'paged', 1 ), 'order' => $sort_order2, 'orderby' => $sort_orderby2, 'meta_key' => $sort_meta_key2 ); $taxquerysp = new WP_Query( $args ); ?> <p>全<span><?php echo $taxquerysp->found_posts; ?></span>件</p><!--市区町村+全国が合算された数を取得--> <?php if ( $taxquerysp->have_posts() ) : while ( $taxquerysp->have_posts() ) : $taxquerysp->the_post(); ?> <!--ループ中身 市区町村+全国が合わさった記事が一覧が表示--> <?php endwhile; ?> <?php else: ?> <p>検索条件に合う店舗は見つかりませんでした。</p> <?php endif; ?> <?php if(function_exists('wp_pagenavi')) { wp_pagenavi(array('query' => $taxquerysp)); } ?> <?php wp_reset_postdata(); ?>
functions.php (こちらは消去しても変化なしでした)
//10件表示 function pre_get_posts_portfolio( $query ) { if ( is_admin() || ! $query->is_main_query() ) return; if ( $query->is_tax( 'area_cat' ) ) { $query->set( 'posts_per_page', 10 ); } } add_action( 'pre_get_posts', 'pre_get_posts_portfolio' );
原因がわからず途方にくれています。。
不足している情報などあれば付け足しますので、何卒よろしくお願いします!!
あなたの回答
tips
プレビュー