サイト内検索

Blog > WordPress > query_postsではまった→スッキリ


2008.06.25

category: WordPress

query_postsではまった→スッキリ

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

<?php query_posts(posts_per_page=10); ?>
<?php if(have_post()) : while (have_posts()) : the_post(); ?>

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

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

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

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

<?php $paged = get_query_var('paged'); ?>
<?php query_posts("posts_per_page=10&paged=$paged"); ?>
<?php if(have_post()) : while (have_posts()) : the_post(); ?>

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

関連投稿

posted on 2008.06.25 12:21pm

Comment and Trackback
Trackback URL
kogi57@2008年6月25日 8:12 PM

query_postsを使うときのTips

LinpeiNa@2009年3月10日 9:41 PM

wordpress、カテゴリー指定表示時などで、ページネーションの動作がおかしくなるのを解決する。

Bill Romanos Delicious Subscriptions@2009年7月23日 10:38 AM

query_postsではまった→スッキリ | WordPress | understandard.net – http://www.understandard.net/wordpre...

jamology@2009年8月5日 4:09 PM

query_posts()は現在ページの指定がないと2ページ目だろうがなんだろうが1ページ目を読み込んでしまう

miccweb@2010年6月15日 11:46 AM

@understandard さまのブログが役に立った!ありがとう http://www.understandard.net/wordpress/wp004.html