サポート » 使い方全般 » 記事表示件数の変更とページ送りについて

  • 記事の表示はうまくいっているのですが、ページ送りで躓いています。
    長くなりますが、もし分かる方がいらっしゃいましたらよろしくお願いいたします。

    WordPress2.6で、yet another photologというプラグインを使用し、
    フォトログを作成しています。

    実現させたいことは、

    • TOPページ:最新の投稿6件表示、残りはページング(<previous | next>)で送る。
    • アーカイブページ:20件表示、残りはTOPページと同じくページング。

    下記のように設定したところ、
    TOPページで next>と続けてページをめくっていくと、最後の方で「ページが見つかりません(404)」という表示になってしまいます。
    最初の数ページは何故か上手くいくのです。

    TOPページ:

    <?php query_posts($query_string . "&showposts=6"); ?>
    <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
    
    ~記事表示~
    
    <?php endif ?>
    <?php endwhile; else: ?>
    <?php _e('Sorry, no posts matched your criteria.'); ?>
    <?php endif; ?>
    
    <?php previous_posts_link('<&nbsp;Previous Page'); ?>
    <?php next_posts_link('Next Page&nbsp;>'); ?>

    アーカイブページ:

    <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
    
    ~記事表示~
    
    <?php endif ?>
    <?php endwhile; else: ?>
    <?php _e(' Sorry, no posts matched your criteria.'); ?>
    <?php endif; ?>
    
    <?php previous_posts_link('<&nbsp;Previous Page'); ?>
    <?php next_posts_link('Next Page&nbsp;>'); ?>

    アーカイブページの方はquery_postsを使っていないので、管理画面の表示設定で「20件」と設定しています。こちらの方はきちんと最後まで表示され、問題はありません。

    最近気づいたのですが、管理画面の表示設定で指定した件数が、query_postsで指定した件数より多いと、そのような現象が起きるようです。

    【TOPページの例】
    きちんと表示される:
    <?php query_posts($query_string . "&showposts=6"); ?> + 管理画面での設定「3件」
    最後の数ページは「みつかりません」:
    <?php query_posts($query_string . "&showposts=6"); ?> + 管理画面での設定「20件」

    現在は両方ともquery_postsで表示件数を指定して、管理画面の表示件数の設定を「1」にしてしのいでいますが、管理画面の表示件数とquery_postsがケンカしてしまってるのでしょうか?
    query_postsの書き方が悪いのでしょうか。。。?(使い方がよくわからず。。。)

    良いアイディアがありましたら、ご教授ください。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • モデレーター IKEDA Yuriko

    (@lilyfan)

    query_posts の引数に posts_per_page=6 を追加してみてください。これがないと、1ページあたりの投稿数は、管理パネルの表示件数の値が使われてしまいます。showposts はあくまで表示件数なので、現状だと「1ページ20件のうち6件表示」となってしまっています。ひょっとすると、1ページ目と2ページ目の間で14件の投稿が抜けているのではないでしょうか??

    lilyfanさん、お返事ありがとうございます。

    試したところ、表示結果は変わりませんでした。。。

    <?php query_posts($query_string . "&showposts=6&posts_per_page=6"); ?>
    <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>

    仰るとおり、管理パネルで20件と設定すると、TOPは最初の1ページ(6件表示)のみ表示され、次ページからは「ページが見つかりません」。
    管理パネルで10件と設定すると、2ページ目まで表示されて、その後は「ページが見つかりません」となります。(投稿数は20あるとします。)

    このような感じで、管理パネルの表示件数を少なくしていくと表示できるページも増えますが、途中でなくなってしまいます。TOPかアーカイブページのどちらかで、管理パネルで設定した表示件数を生かそうと思っていたのですが。。。むむむ

    追記です。

    パーリンクを次のように変えているのですが、
    /%category%/entry_%post_id%.html
    デフォルトのパーマリンクに戻すときちんと表示されました。
    デフォルト以外は上記のような状態になってしまします。

    パーマリンクの設定ですかね。。?
    「ページナビゲーションが動かない (Paged Navigation Doesn’t Work) 」
    http://wpdocs.sourceforge.jp/Using_Permalinks
    →試したが駄目だった。

    .htaccessも関係していそうですが、海外のページでも同様の問題を見つけました。
    http://wordpress.org/support/topic/51613?replies=16
    http://wordpress.org/support/topic/43738?replies=2#post-245183

    カスタムのパーマリンクでページナビゲーションは効かないのでしょうか?

    これって検索結果でも同様の症状になります。
    パーマリンク設定がデフォルトでも同様。
    新規にWordPressをインストールしただけの状態でTwentytenなどの標準のテーマでも発生します。
    不具合だと思います。
    4年も前のトピックですが、3.4.2でも放置状態なのでしょうか?
    設定の表示数を1件にすれば回避できますが、他に方法は無いのでしょうか?

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「記事表示件数の変更とページ送りについて」には新たに返信することはできません。