サポート » プラグイン » 特定条件でWP-PageNaviの最終ページの内容が空白になってしまう

  • 解決済 momokichi

    (@momokichi)


    カスタム投稿タイプの記事をWP-PageNaviを用いて一覧ページに表示させています。
    当初、2ページ目以降で404となるため、あれこれ対策を行った結果

    ●functions.php
    
    add_rewrite_rule('post_type/(.+)/page/([0-9]+)/?$', 'index.php?terms=$matches[1]&paged=$matches[2]', 'top');
    
    function change_posts_per_page($query) {
        if ( is_admin() || ! $query->is_main_query() )
            return;
    
        if ( $query->is_archive() ) {
            $query->set( 'posts_per_page', '3' );
        }
    }
    add_action( 'pre_get_posts', 'change_posts_per_page' );

    とすることによって、概ね正常に動くようになりました。

    ところが、以下の条件を満たした場合、最終ページの$postが空っぽになってしまいます。
    (404ページではありません。ページャー自体は機能しています)

    ・「表示対象となる投稿の数」が2件以上
    ・「表示対象となる投稿の数」をposts_per_page の設定値で割った際に、余りが1となる

    他にも、発生条件は分からないものの
    明らかに表示されるべき記事がループから除外されてしまう時があります。
    (最終ページに関連して発生している、ということ以上は分かりません)

    原因や対処法をご存知の方がいれば教えて頂けると幸いです。
    よろしくお願いいたします。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • カスタム投稿タイプの記事をWP-PageNaviを用いて一覧ページに表示させています。
    当初、2ページ目以降で404となるため、あれこれ対策を行った結果
    (中略)
    とすることによって、概ね正常に動くようになりました。

    404になってしまうのをリライトルールで避けていらっしゃるようですが、そっちを解決すればこちらの問題自体がなくなるように思います。404の問題を書いたトピックがあれば教えてください。

    失礼しました、リライトルールは404対策ではないですね。

    すいません。解決しました。

    functions.phpに書いていた検索ページ用の処理が
    検索ページ外でも効いてしまっていたのと
    header.phpにおいて、og:imageを取得する際に
    the_post()を実行してしまっていたため、ループがおかしくなっていたようです。

    初歩的なミスでお騒がせして申し訳ありませんでした。
    ただ今まで何となく書いていた、the_post()の役割などについても知ることができました。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック「特定条件でWP-PageNaviの最終ページの内容が空白になってしまう」には新たに返信することはできません。