query_postsのページ送り

投稿記事一覧を query_posts() を使って出力して、1ページに10投稿ずつ表示していくときに、単純に1ページあたりの投稿表示数を指定すれば大丈夫だと思ってました。

が、思わぬ落とし穴がありました。
次のページに進んでも、リストには同じものが表示されている…



1ページ目を見たときには全く気づかなかったんですが、2ページ目を見てみると1ページ目と同じリストが表示されてる…。
どれだけページを進めても実際取得しているのは先頭の10件だけ。

posts_per_page とか showposts とかパラメータの値を変えたり、パラメータ自体を変えたりしてみたが一向に上手くいかない。

調べてみると、フォーラムで同じ質問している人がいました。
それによると、query_posts() は現在ページの指定がないと2ページ目だろうがなんだろうが1ページ目を読み込んでしまうようで、これは query_posts() だけではどうしようもない様子…。

それでもこの問題が簡単に解決する方法が解説してあったので、早速試してみました。
そこに書いてあった解決法は、以下の通り




query_posts() の前で、現在のページ数を指定する paged の値を取得して、その値を query_posts()の paged の中に毎回入れていくってことなのかな?
おかげさまで悩んでた query_posts() のワナから抜け出し、スッキリしたのでした。

Tips Category

Tips Tag Cloud