サポート » 使い方全般 » wp_queryでoffsetを使いたい

  • wp_queryでoffsetを使いたい

    wp_queryを使って新着の2番目以降のカスタムフィールドの記事一覧を表示
    したいのですが、wp_queryでoffset使うことはできないそうなのですが
    どのようにして新着の2番目以降の記事一覧を表示するのでしょうか?

    助言をよろしくお願い致します。

    以下のコードで新着の記事一覧は表示することが出来ました。

    <?php
        $wp_query = new WP_Query();
        $param = array(
            'posts_per_page' => '1', //表示件数。-1なら全件表示
            'post_type' => 'info', //カスタム投稿タイプの名称を入れる
            'post_status' => 'publish', //取得するステータス。publishなら一般公開のもののみ
            'orderby' => 'ID', //ID順に並び替え
            'order' => 'DESC'
        );
        $wp_query->query($param);
        if($wp_query->have_posts()): while($wp_query->have_posts()) : $wp_query->the_post();
    ?>
    
              <p><?php $text = get_field('text'); if ( $text )  { echo $text; }?></p>
    
    <?php endwhile; endif; ?>
6件の返信を表示中 - 1 - 6件目 (全6件中)
  • wp_queryでoffset使うことはできないそうなのですが

    使えます。WP_Query の説明ページの「オフセットパラメータ」を御覧ください。

    トピック投稿者 gabesan

    (@gabesan)

    gblsm様 返信ありがとうございます。

    <?php
        $wp_query = new WP_Query( 'offset=3' );
        $param = array(
            'posts_per_page' => '-1', //表示件数。-1なら全件表示
            'post_type' => 'feature', //カスタム投稿タイプの名称を入れる
            'post_status' => 'publish', //取得するステータス。publishなら一般公開のもののみ
            'orderby' => 'ID', //ID順に並び替え
            'order' => 'DESC'
        );
        $wp_query->query($param);
        if($wp_query->have_posts()): while($wp_query->have_posts()) : $wp_query->the_post();
    ?>
    …
    …
    <?php endwhile; endif; ?>

    offsetを入れてみましたが、投稿とびませんでした…
    入れるところ間違えてますでしょうか?

    そのコードだと、せっかく指定した offset が、後から query を呼び出した時に $param の内容で上書きされて取り消されます。offset も $param の中へ入れましょう。

    トピック投稿者 gabesan

    (@gabesan)

    <?php
        $wp_query = new WP_Query();
        $param = array(
            'offset' => '3', //オフセット
            'posts_per_page' => '-1', //表示件数。-1なら全件表示
            'post_type' => 'feature', //カスタム投稿タイプの名称を入れる
            'post_status' => 'publish', //取得するステータス。publishなら一般公開のもののみ
            'orderby' => 'ID', //ID順に並び替え
            'order' => 'DESC'
        );
        $wp_query->query($param);
        if($wp_query->have_posts()): while($wp_query->have_posts()) : $wp_query->the_post();
    ?>
    …
    …
    <?php endwhile; endif; ?>

    $paramの中に入れてみましたが、変わらないようです…

    'posts_per_page' => '-1'
    ソースコードを見る限り、この指定により「全件取得する」という意味になるので
    offsetの指定は無効になるようですね。

    tmatsuurさん、調べて頂いてありがとうございます。気づいていませんでした。
    gabesanさん、失礼しました。

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • トピック「wp_queryでoffsetを使いたい」には新たに返信することはできません。