前提・実現したいこと
wordpressで発生しているページ送りのエラーの原因を特定し、修正したい。
私はエンジニアではないので原因が中々つかめません
どうぞよろしくお願い致します。
発生している問題・エラーメッセージ
アーカイブ一覧ページ内に設置しているページ送りが
2ページ目から他のカテゴリー一覧に飛ぶと、その2ページ目のカテゴリ名を引き継いでしまう。
なぜこうなってしまうのかわかりません。
コードは拾いものです。
■アーカイブ一覧の2ページ目
https://ドメイン名/サイト名/*カテゴリ名/page/2
↓別のカテゴリー一覧ページへ移動
https://ドメイン名/サイト名/*カテゴリ名/page/カテゴリ名
となってしまいます
そのページURLは存在しないので404エラーとなります
他のカテゴリページがカテゴリ名/page/以下の子ページとして認識されてしまっているのかと思います。
どうにかしてカテゴリ名を引き継がず、正常に他カテゴリページへ移動できるようにしたいです
該当のソースコード
こちらがfunctionに記載しているページ送りのコードです。
<?php get_responsive_pagination(7,4);?> このタグで出力しています。// ページャー表示 function get_responsive_pagination($_pagination_range_pc,$_pagination_range_sp){ global $wp_query; $total_posts_num = $wp_query->found_posts; //記事数が0の場合終了 if ($total_posts_num == 0) return; //1ページに表示する範囲 $page_range = get_query_var('posts_per_page'); //合計ページ数 $total_page_num = ceil($total_posts_num/$page_range); //現在のページを取得 $index_page_num = get_query_var('paged') ? get_query_var('paged') :1 ; //開始件数を取得 $from = $page_range * ($index_page_num - 1 ) + 1; //終了件数を取得 $to = $page_range * $index_page_num; //開始件数から終了件数 $from_to = ''; //合計該当記事数が終了件数より小さい場合、終了件数に設定 if($total_posts_num <= $to)$to = $total_posts_num; if($total_posts_num == 1 ){ $from_to = $from; }else{ $from_to = $from.'〜'.$to; } if($from == $to)$from_to = $from; /* PC */ $pagination_range = $_pagination_range_pc; //ページャー範囲が合計ページ数より多い場合 if ($pagination_range >= $total_page_num) $pagination_range = $total_page_num; $pagination_offset = floor($pagination_range / 2); $pagination_from_limit = $total_page_num - $pagination_range + 1; $offset_from = $index_page_num - $pagination_offset; if ($offset_from <= 1) $offset_from = 1; if ($offset_from >= $pagination_from_limit) $offset_from = $pagination_from_limit; $offset_to = $offset_from + $pagination_range; /* SP */ $pagination_range_sp = $_pagination_range_sp; //ページャー範囲が合計ページ数より多い場合 if ($pagination_range_sp >= $total_page_num) $pagination_range_sp = $total_page_num; $pagination_offset_sp = floor($pagination_range_sp / 2); $pagination_from_limit_sp = $total_page_num - $pagination_range_sp + 1; $offset_from_sp = $index_page_num - $pagination_offset_sp; if ($offset_from_sp <= 1) $offset_from_sp = 1; if ($offset_from_sp >= $pagination_from_limit_sp) $offset_from_sp = $pagination_from_limit_sp; $offset_to_sp = $offset_from_sp + $pagination_range_sp; $add_class = ''; $source = ''; if($total_page_num > $_pagination_range_sp + 2 ) $add_class .= ' pagination-range-over-sp'; if($total_page_num > $_pagination_range_pc + 2 ) $add_class .= ' pagination-range-over-pc'; $source .= '<nav class="cms-pagination'.$add_class.'">'."\n"; $source .= '<ul class="clearfix">'."\n"; //prev first if($index_page_num != 1 ) { $source .= '<li class="pagination-no-num first"><a href="'.get_pagenum_link(1).'">先頭へ</a></li>'."\n"; $source .= '<li class="pagination-no-num prev"><a href="'.get_pagenum_link($index_page_num - 1).'"><</a></li>'."\n"; }else{ $source .= '<li class="pagination-no-num first"><span>先頭へ</span></li>'."\n"; $source .= '<li class="pagination-no-num prev"><span><</span></li>'."\n"; } for ($i=$offset_from; $i < $offset_to; $i++){ if($index_page_num == $i){ if($i>=$offset_from_sp && $i<$offset_to_sp){ $source .= '<li class="pagination-index pagination-sp"><span>'.$i.'</span></li>'."\n"; }else{ $source .= '<li class="pagination-index"><span>'.$i.'</span></li>'."\n"; } }else{ if($i>=$offset_from_sp && $i<$offset_to_sp){ $source .= '<li class="pagination-sp"><a href="'.get_pagenum_link($i).'">'.$i.'</a></li>'."\n"; }else{ $source .= '<li><a href="'.get_pagenum_link($i).'">'.$i.'</a></li>'."\n"; } } } //next last if($index_page_num != $total_page_num) { $source .= '<li class="pagination-no-num next"><a href="'.get_pagenum_link($index_page_num + 1).'">></a></li>'."\n"; $source .= '<li class="pagination-no-num last"><a href="'.get_pagenum_link($total_page_num).'">最後へ</a></li>'."\n"; }else{ $source .= '<li class="pagination-no-num next"><span>></span></li>'."\n"; $source .= '<li class="pagination-no-num last"><span>最後へ</span></li>'."\n"; } $source .= '</ul>'."\n"; $source .= '</nav>'."\n"; $source .= '<div class="pagination-txt">'.$from_to.'<span> / '.$total_posts_num.'件</div>'."\n"; echo $source; }
試したこと
・表示件数変更
・404回避
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー