実現したいこと
Wordpressサイトにてページネーションの自作をしたのですが、ページ送りリンク3(paged=3)で404エラーが発生して困っています.
これを3以上の数字でも正常なリンクとして使用したいです。
前提
記事投稿数11以上のカスタム投稿アーカイブページにて'posts_per_page'を5に設定しているのですが
1,2のページ送りリンクの生成のみで、11番目以降の古い記事へのリンクが表示されません。
'posts_per_page'を削除した場合は、2ページに振り分けられて1ページあたりの表示投稿が増えていきます。
→進展ありまして、ページ送りリンク(3以降)の生成には成功しました
$paged = ( get_query_var('paged') ) ? get_query_var('paged') : 1; $custom_args = array( 'post_type' => 'pressroom', 'posts_per_page' => 5, 'paged' => $paged ); $custom_query = new WP_Query( $custom_args ); ?>
同じarchiveXXX内に上記の記述があります。
2つ目のget_query_var('paged')をget_query_var('page')にした場合は2ページ目ボタンを押しても1ページ目の内容が表示されましたので、両方paged でよいと考えています。
発生している問題・エラーメッセージ
下記に記載のコードでは3ページ目以降のページ送りが出来ない状態です。
※ページ送りボタン1,2,3・・・は生成されるが3以降では404エラー、1,2は正常
表示されるリンク先はexample/category?paged=3 で、リンク先ページが生成されていません。
totalに実数を入れた場合は404エラーが発生します。
該当のソースコード
<?php if ($custom_query->max_num_pages > 1): echo '<div class="new-pagenation">'; echo paginate_links(array( 'base' => get_pagenum_link(1) . '%_%', 'format' => '?paged=%#%', 'total' => $くcustom_query->max_num_pages, 'current' => max(1, $paged), 'show_all' => False, 'end_size' => 1, 'mid_size' => 2, 'prev_next'=> True, 'next_text' => '次へ', 'prev_text' => '前へ' )); echo '</div>'; endif; ?>
試したこと
total に投稿数/5 切り上げの実数を入力して見たのですが、その場合は3ページ目以降は404エラーになりました。
wp_queryを custom_query に変更したことで、ページ送りボタンの生成には成功し、1,2,3・・・と、ページ送りボタンは生成されました。(リンク先表示はcategory?paged=3 と表示)
1,2はリンク先ページ生成されるが、3以降はクリックしても404エラー
アドレスバーに直接exanpmle.com/category?paged=3/を入力しても404エラーになります。
補足情報(FW/ツールのバージョンなど)
ページネーションプラグインやショートコードは試みましたが404エラーが頻発するのでページネーションを自作する方法を採りました。
色々と試しては見たつもりですが、見落としなどもあるかもしれませんのでお気づきの点あればコメント頂ければ幸いです。
function.php内に
add_filter('redirect_canonical','my_disable_redirect_canonical'); function my_disable_redirect_canonical( $redirect_url ) { if ( is_archive() ){ $subject = $redirect_url; $pattern = '/\/page\//'; // URLに「/page/」があるかチェック preg_match($pattern, $subject, $matches); if ($matches){ //リクエストURLに「/page/」があれば、リダイレクトしない。 $redirect_url = false; return $redirect_url; } } }
1,2は正常に使えているのに、3で異常が出る という事はループ関連でしょうか。
お気づきの点あれば別視点からご意見伺えますと幸いです。

回答1件
あなたの回答
tips
プレビュー