解決したいこと
WordPressのPHPで不動産の物件一覧を作成しています。そこで、検索機能を実装して検索結果ページを表示しましたが、ページネーションで2ページ目以降へ移ると、2ページ目以降も1ページ目の内容が表示されてしまいます。2ページ目以降も2ページ目以降の内容を表示するようにしたいです。
尚、2ページ目のURLは「https://as-bl.co.jp/page/2/?s&low_year=2017&high_units=1000&high_price=1000&submit=%E6%A4%9C%E7%B4%A2」となっているので、2ページ目に遷移していると思います。
ソースコード
検索機能
php
1 <!-- ▼【追加】絞り込み検索▼ --> 2<h3>物件検索</h3> 3 <form method="get" id="searchform" action="<?php bloginfo('url'); ?>"> 4<label for="s" class="assistive-text">検索</label> 5<input type="text" class="field" name="s" id="s" placeholder="検索" /> 6 7<div>地区</div> 8<?php 9$taxonomy_name = 'salecat'; 10$taxonomys = get_terms($taxonomy_name); 11if(!is_wp_error($taxonomys) && count($taxonomys)): 12 foreach($taxonomys as $taxonomy): 13 $tax_posts = get_posts(array('post_type' => get_post_type(), 'taxonomy' => $taxonomy_name, 'term' => $taxonomy->slug ) ); 14 if($tax_posts): 15?> 16<label><input type="checkbox" name="salecat[]" value="<?php echo $taxonomy->slug; ?>"><?php echo $taxonomy->name; ?></label><br> 17<?php 18 endif; 19 endforeach; 20endif; 21?> 22 23<div>築年数</div> 24 <select name="low_year"> 25 <option value="1900" selected>指定なし</option> 26 <option value="2017">3年以内</option> 27 <option value="2015">5年以内</option> 28 <option value="2010">10年以内</option> 29 <option value="2005">15年以内</option> 30 <option value="2000">20年以内</option> 31 <option value="1995">25年以内</option> 32 <option value="1990">30年以内</option> 33 </select> 34 35 36<div>総戸/区画数</div> 37 <select name="high_units"> 38 <option value="1000" selected>指定なし</option> 39 <option value="10">10戸以内</option> 40 <option value="30">30戸以内</option> 41 <option value="50">50戸以内</option> 42 <option value="70">70戸以内</option> 43 </select> 44 45 46<div>相場価格</div> 47 <select name="high_price"> 48 <option value="1000" selected>指定なし</option> 49 <option value="10">10万円/㎡以内</option> 50 <option value="30">30万円/㎡以内</option> 51 <option value="50">50万円/㎡以内</option> 52 <option value="70">70万円/㎡以内</option> 53 </select> 54 55 56<div>新築/中古</div> 57 <input type="radio" name="comparison" value="all">全て 58 <input type="radio" name="comparison" value="new">新築 59 <input type="radio" name="comparison" value="old">中古 60 61 62<input type="submit" class="submit" name="submit" id="searchsubmit" value="検索" /> 63</form> 64<!-- ▲【追加】絞り込み検索▲ -->
検索結果ページ
php
1<?php 2/** 3 * The template for displaying search results pages. 4 * 5 * @package Sydney 6 */ 7 8get_header(); 9 10$layout = sydney_blog_layout(); 11 12?> 13 14<h2>マンション一覧</h2> 15 16 <?php do_action('sydney_before_content'); ?> 17 18 19 <?php get_sidebar(); ?> 20 21 <div class="content-area <?php echo esc_attr( $layout ); ?>"> 22 23 <?php sydney_yoast_seo_breadcrumbs(); ?> 24 25 26 <p id="number_of_searches">検索結果:<?php echo $wp_query->found_posts; ?>件</p> 27 28 <main id="main" class="post-wrap" role="main"> 29 30<?php 31$s = $_GET['s']; 32$salecat = $_GET['salecat']; 33$high_year = 2020; 34$low_year = $_GET['low_year']; 35$high_units = $_GET['high_units']; 36$low_units = 0; 37$high_price = $_GET['high_price']; 38$low_price = 0; 39$comparison = $_GET['comparison']; 40 41//meta_query用 42if($salecat){ 43 $taxquerysp[] = array( 44 'taxonomy'=>'salecat', 45 'terms'=> $salecat, 46 'include_children'=>false, 47 'field'=>'slug', 48 'operator'=>'AND' 49 ); 50} 51 52$metaquerysp[] = array( 53 'key'=>'chikunen', 54 'value'=>array( $low_year, $high_year ), 55 'compare'=>'BETWEEN', 56 'type'=>'NUMERIC', 57 ); 58 59$metaquerysp[] = array( 60 'key'=>'kosuu', 61 'value'=>array( $low_units, $high_units ), 62 'compare'=>'BETWEEN', 63 'type'=>'NUMERIC', 64 ); 65 66$metaquerysp[] = array( 67 'key'=>'souba', 68 'value'=>array( $low_price, $high_price ), 69 'compare'=>'BETWEEN', 70 'type'=>'NUMERIC', 71 ); 72 73if($comparison){ 74 $metaquerysp[] = array( 75 'key'=>'shinko', 76 'value'=> $comparison, 77 ); 78} 79 80?> 81 82 83<div>検索条件</div> 84<?php if($s){ ?>検索キーワード:<?php echo $s; ?><br><?php } ?> 85<?php 86if (is_array($salecat)) { ?>地区:<?php 87foreach($salecat as $val){ 88if ($val === end($salecat)) { 89echo get_term_by('slug',$val,"salecat")->name; 90 }else{ 91echo get_term_by('slug',$val,"salecat")->name.", "; 92} 93} 94} 95 ?> 96<?php 97 if($low_year == 1900 && $high_year == 2020){} 98 else 99 { ?>築年数:<?php 100 if($low_year == 2017){?>3年以内<?php } 101 else if($low_year == 2015){?>5年以内<?php } 102 else if($low_year == 2010){?>10年以内<?php } 103 else if($low_year == 2005){?>15年以内<?php } 104 else if($low_year == 2000){?>20年以内<?php } 105 else if($low_year == 1995){?>25年以内<?php } 106 else if($low_year == 1990){?>30年以内<?php } 107 } 108?> 109<?php 110 if($low_units == 0 && $high_units == 1000){} 111 else 112 { ?>総戸/区画数:<?php 113 if($high_units == 10){ echo number_format($high_units).'戸以内'; } 114 else if($high_units == 30){ echo number_format($high_units).'戸以内'; } 115 else if($high_units == 50){ echo number_format($high_units).'戸以内'; } 116 else if($high_units == 70){ echo number_format($high_units).'戸以内'; } 117 } 118?> 119<?php 120 if($low_price == 0 && $high_price == 1000){} 121 else 122 { ?>相場価格:<?php 123 if($high_units == 10){ echo number_format($high_units).'万円/㎡以内'; } 124 else if($high_units == 30){ echo number_format($high_units).'万円/㎡以内'; } 125 else if($high_units == 50){ echo number_format($high_units).'万円/㎡以内'; } 126 else if($high_units == 70){ echo number_format($high_units).'万円/㎡以内'; } 127 } 128?> 129<?php if($comparison){ ?>新築/中古:<?php echo $comparison; } ?> 130 131 132 133 134 <?php 135query_posts( array( 136 'tax_query' => $taxquerysp, 137 'meta_query' => $metaquerysp, 138 's' => $s, 139 ) 140); 141?> 142 143※ここに一覧の中身を表示しています。 144 145 146 <!-- ▼pagenation▼ --> 147 <div class="pager"> 148 <ul class="pagerList"> 149 <?php 150 if ( function_exists( 'page_navi' )): 151 page_navi( 'items=5&' ); 152 endif; 153 wp_reset_query(); 154 ?> 155 </ul> 156 </div> 157 <!-- pagenation終わり --> 158 159 </div><!-- #primary --> 160 161 <?php do_action('sydney_after_content'); ?> 162<?php get_footer(); ?>
検索前の物件一覧のページではページネーションは問題なく機能します。
解決方法のご教授をよろしくお願いします。
あなたの回答
tips
プレビュー