質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

ページネーション

Webアプリケーションにおいて、1ページに収まらないコンテンツを、各ページへのリンクを並べてアクセスしやすくする手法をページネーションと呼びます。

検索

検索は、あるデータの集まりの中から 目的のデータを見つけ出すことです。

Q&A

0回答

1278閲覧

検索結果ページのページネーションで2ページ目移行が1ページ目の内容になってしまう。

raberu

総合スコア3

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

ページネーション

Webアプリケーションにおいて、1ページに収まらないコンテンツを、各ページへのリンクを並べてアクセスしやすくする手法をページネーションと呼びます。

検索

検索は、あるデータの集まりの中から 目的のデータを見つけ出すことです。

0グッド

1クリップ

投稿2020/08/09 14:04

解決したいこと

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(); ?>

検索前の物件一覧のページではページネーションは問題なく機能します。
解決方法のご教授をよろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問