functions.phpで作ったページネーションのフォーマットがリライトされて404になる問題の解決方法

  • ブックマーク
  • -
    コピー
functions.phpで作ったページネーションがパーマリンクの設定によって自動でリライトされてしまい、2ページ目以降が404になってしまいアクセスできなくなってしまう問題にぶちあたりました。 下記の参考リンクと同様の問題なのですが、参考のコードを利用しても僕のローカル環境では問題が解決しませんでした。
前述の参考記事のコードではpageというキーワードとマッチする前にリダイレクトされているようで、先に404へリダイレクトされてしまいます。 後述の参考URLのように /page/○○ という時にだけ条件一致でリライトするようにしたら無事解決し、他のp−まリンク設定でも現状は問題なさそうなのでそのようにしました。

add_filter( 'get_pagenum_link', 'tweak_pagenation_link' );

function tweak_pagenation_link( $link )
{
    return preg_replace( '~/page/(\d+)/?~', '/?paged=\1', $link );
}

  • ブックマーク
  • -
    コピー

この記事を書いた人

Susumu Seino

1988年 東京都足立区生まれ。瀬戸内海の小島と東京に拠点を持ち、2020年からは夫婦でアドレスホッピングを計画しているデジタルノマドな日本人。デジタルパブリッシング代理店のアニューマの創業者です。