前提・実現したいこと
絞り込み検索後に正常に数字はでてきているのですが
ページネーションのリンク先があっていないせいか
「ページが見つかりませんでした」とタブに記載されており
トップページの画面へリダイレクトしてしまいます。
もし、原因や対処方法などご存知の方がいらっしゃったら教えていただけないでしょうか?
お手数をおかけしますがよろしくお願い致します。
該当のソースコード
functions.php
function eventPagination($pages = "", $range = 2){ $showitems = ($range * 1) + 1; global $paged; if(empty($paged)) $paged = 1; if($pages == ""){ global $sub_query; $pages = $sub_query -> max_num_pages; if(!$pages){ $pages = 1; } } if(1 != $pages){ if($paged > 1) echo "<li class=\"c-pageNation__page\"><a href='".get_pagenum_link($paged - 1)."'><i class=\"fas fa-angle-left\"></i></a></li>"; for ($i=1; $i <= $pages; $i++){ if (1 != $pages &&( !($i >= $paged + $range + 1 || $i <= $paged - $range - 1) || $pages <= $showitems)){ echo ($paged == $i)? "<li class=\"c-pageNation__page is-active\"><a href='".get_pagenum_link($i)."'>".$i."</a></li>": "<li class=\"c-pageNation__page\"><a href='".get_pagenum_link($i)."'>".$i."</a></li>"; } } if($paged < $pages) echo "<li class=\"c-pageNation__page\"><a href='".get_pagenum_link($paged + 1)."'><i class=\"fas fa-angle-right\"></i></a></li>"; } }
対象ページのphp
<aside class="l-aside"> <div class="p-aside"> <form role="search" method="get" action="<?php echo esc_url(home_url("/")); ?>"> <p class="p-aside_text">イベントを検索する</p> <dl class="p-aside__selectList"> <dt class="p-aside__listTitle">種目</dt> <dd class="p-aside__selectWrap"> <select class="p-aside__select" id="p-aside__select" name="sports"> <option value="">選択してください</option> <?php $terms = get_terms("sports"); foreach ($terms as $term): $selected = (isset($_GET["sports"]) && $_GET["sports"] == $term->slug) ? true : false; ?> <option value="<?php echo $term->slug; ?>"<?php if($selected) echo "selected" ?>><?php echo $term->name; ?></option> <?php endforeach; ?> </select> </dd> <dt class="p-aside__listTitle">都道府県</dt> <dd class="p-aside__selectWrap"> <select class="p-aside__select" name="prefectures"> <option value="0">選択してください</option> <?php $terms = get_terms("prefectures"); foreach ( $terms as $term ): $selected = (isset($_GET["prefectures"]) && $_GET["prefectures"] == $term->slug) ? true : false; ?> <option value="<?php echo $term->slug; ?>"<?php if($selected) echo "selected" ?>><?php echo $term->name; ?></option> <?php endforeach; ?> </select> </dd> </dl> <input type="hidden" name="s" value="<?php the_search_query(); ?>"> <p class="p-aside__buttonWrap"><input type="submit" class="p-aside__button c-button" value="検索"></input></p> </form> </div> </aside> <main class="l-main"> <div class="p-event"> <ul class="p-event__cards" id="p-event__cards"> <?php $hoge = $_GET["sports"]; $hoge2 = $_GET["prefectures"]; $args = array( "post_type" => "post", "posts_per_page" => 1, "paged" => $paged, "category_name" => "article_event", "s" => get_search_query(), "tax_query" => array( array( "taxonomy" => "sports", "terms" => $hoge, "field" => "slug", "operator" => "AND" ), array( "taxonomy" => "prefectures", "terms" => $hoge2, "field" => "slug", "operator" => "AND" ), ) ); $sub_query = new WP_Query( $args ); if ( $sub_query->have_posts() ): while ( $sub_query->have_posts() ): $sub_query->the_post(); ?> <li class="p-event__cardWrap"> <a class="c-card" href="<?php the_permalink(); ?>"> <p class="c-card__thumbnail" style="background-image: url(<?php echo wp_get_attachment_url(get_post_thumbnail_id($post_id)); ?>)"></p> <dl class="c-card__itemList"> <dt class="c-card__itemTitle">大会名</dt> <dd class="c-card__itemData"> <?php if(mb_strlen(get_field("大会名"))>15) { $hoge= mb_substr(get_field("大会名"),0,14) ; echo $hoge. … ;} else {echo get_field("大会名");} ?> </dd> <dt class="c-card__itemTitle">チーム名</dt> <dd class="c-card__itemData"> <?php if(mb_strlen(get_field("チーム名"))>15) { $hoge= mb_substr(get_field("チーム名"),0,14) ; echo $hoge. … ;} else {echo get_field("チーム名");} ?> </dd> <dt class="c-card__itemTitle">場所</dt> <dd class="c-card__itemData"> <?php if(mb_strlen(get_field("場所"))>15) { $hoge= mb_substr(get_field("場所"),0,14) ; echo $hoge. … ;} else {echo get_field("場所");} ?> </dd> <dt class="c-card__itemTitle">日時</dt> <dd class="c-card__itemData"> <?php if(mb_strlen(get_field("日時"))>18) { $hoge= mb_substr(get_field("日時"),0,17) ; echo $hoge. … ;} else {echo get_field("日時");} ?> </dd> </dl> </a> </li> <?php endwhile; endif; wp_reset_postdata(); ?> </ul> <ul class="c-pageNation"> <?php eventPagination($sub_query -> max_num_pages); ?> </ul> </div>
補足情報(FW/ツールのバージョンなど)
検索後のURL表記は下記のようになっております(一部の項目を選択時)
検索前
http://localhost:8888/ページタイトル/event/
検索後(↓2ページのURLです)
http://localhost:8888/ページタイトル/page/2/?sports&prefectures=%25e5%259f%25bc%25e7%258e%2589%25e7%259c%258c&s
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。