サポート » 使い方全般 » query_postsでlimit句のようなことはできないのでしょうか

  • 解決済 sensensen

    (@sensensen)


    いつもお世話になっております。
    標題のとおり、query_postsでlimit句のようなことはできないのでしょうか。

    どういうイメージかと申しますと、
    4で割り切れる件数だけ表示したいのです。

    例えばquerypostのpost_per_pageで20にし、
    投稿記事が27件あるとすると、

    1件の表示件数は20件となり、ページ遷移が表示されると思いますが、
    遷移後も1ページの表示件数は20なので、残りの7件が表示されるのが普通だと思いますが、

    これを4件のみ表示としたいのです。

    27 – 20で2ページ目の件数は7件となりますが、4で割り切れる件数にしたいので、
    余りの3件は表示させない

    このようにしたいのですが、何か良い方法はございませんか?

    ご教授お願いします。

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

    (@jim912)

    sensensenさん

    limit句に相当するものはposts_per_pageになりますが、これ自体を変更するとページナビや前後ナビの出力がうまく動作しません。(ページナビ等は全件数を合わせて取得してページ数などを計算するため、posts_per_pageを変更すると、ページナビにも影響が出てしまいます。)

    実現方法として、

    1. ループ開始前に $postsの配列を4の倍数に調整する。
    2. ループ中は変数にソースを格納し、4の倍数になったら出力。

    のような方法が簡単かと思います。

    トピック投稿者 sensensen

    (@sensensen)

    jimさん、
    いつもお世話になっております。

    1.ループ開始前に $postsの配列を4の倍数に調整する。
    2.ループ中は変数にソースを格納し、4の倍数になったら出力。

    と記載していただきましたが、現状は

    query_posts($args);
    した後、記事の表示は

    <?php if (have_posts()) : ?>
    <?php while (have_posts()) : the_post(); ?>

    とwpテンプレートで出力するようにしております。

    $postで全てのデータを取得してforeachか何かでループするように
    処理を変更する。ということですよね?

    ご連絡お待ちしております。

    モデレーター jim912

    (@jim912)

    $postで全てのデータを取得してforeachか何かでループするように
    処理を変更する。ということですよね?

    そうです。

    トピック投稿者 sensensen

    (@sensensen)

    jimさん、
    早速のご連絡ありがとうございました。

    ソース修正して対応してみようと思います。
    どうもありがとうございました。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「query_postsでlimit句のようなことはできないのでしょうか」には新たに返信することはできません。