• 解決済 makoto

    (@makoto-jp)


    カスタム投稿タイプのアーカイブページにて、1ページ目には記事を「1件」、2ページ目以降は「5件」というように表示を変更したく思っています(件数は例えです)。

    実際に下記のコードをfunctions.phpに記載して試してみました。

    function my_posts_per_page($query) {
    	if (!is_admin() && $query -> is_main_query()) {
    
    		if ($query -> is_post_type_archive('custom_post') && !$query -> is_paged()) { //1ページ目
    			$query -> set('posts_per_page', 1);
    			return;
    		}
    		if ($query -> is_post_type_archive('custom_post') && $query -> is_paged()) { //2ページ目以降
    			$query -> set('posts_per_page', 5);
    			return;
    		}
    }
    add_action('pre_get_posts', 'my_posts_per_page');

    1ページ目は期待通り、記事が1件のみ表示されました。しかし、2ページ目を表示してみると、指定した件数である5件よりも多い12件(どこからきた数字なのでしょうか)が表示されてしまいました。

    ページごとに表示件数を変更するというのは難しいのでしょうか。どなかたご回答のほどよろしくお願いします。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • 軽く試してみましたが(上のコードだと閉じ}が一つ足りなかったので追加しました)
    1ページ目は1件、2ページ以降は5件表示になりました。
    どこか他のコードが悪さしているのではないでしょうか?

    なお、仮に正常に動作したとしても今のままですと
    一ページ目は投稿1が、2ページ目は投稿6-11が表示されてしまいます。
    これは表示件数5件の2ページ目ということになるために1ページ目も5件という計算になるからです。
    この辺りは過去の投稿で同じような質問をしていた人が居た気がしますので探してみると参考になるかもしれません。

    トピック投稿者 makoto

    (@makoto-jp)

    ご回答ありがとうございます。

    表示件数5件の2ページ目ということになるために1ページ目も5件という計算になるからです。

    指定件数よりも多く表示される件は上記が関連していたようです。私の単純なミスでした(件数の指定が誤っていた)。

    件数の変更はできるようなので安心しました。これから過去の質問を探してみます。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「1ページ目と以降のページで表示件数を変更するには」には新たに返信することはできません。