サポート » 使い方全般 » 最新記事の前の記事の取得方法は?

  • 解決済 hanahana-mai

    (@hanahana-mai)


    すみません、書き方が分らないのでアドバイスを頂けないでしょうか。

    サイト上に現在の最新記事と、その1つ前の記事、更にその1つ前の記事の3つを別々に表示させたいのですが方法が分りません。

    最新記事だけであればget_postsなどで取得できると思いますし、一箇所に最新3件の表示も出来るのですが、今回はそれぞれ異なる場所に最新とその次、その次の記事を配置したいと考えています。

    この場合、1つ前と2つ前を取得するにはどういった書き方を行えばよいでしょうか?
    宜しくお願いいたします。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • get_posts() のパラメータ offset を指定すると、その数だけ読み飛ばしてから記事を取得してくれます。省略時の offset はゼロだというわけです。get_posts() の説明ページの用例が参考になります。

    モデレーター jim912

    (@jim912)

    offset でも良いのですが、この方法だと個別にデータベースアクセスが発生していまいます。

    同一ページ内の別の箇所に表示するのであれば、最新の3記事を一度に取得しておき、配置したい箇所では、添字配列で記事内容を取得する方法も可能かと思います。

    $recent_posts = get_posts( array( 'posts_per_page' => 3 ) );
    
    // 最新の記事を表示
    if ( isset( $recent_posts[0] ) ) {
    	$post = $recent_posts[0];
    	setup_postdata( $post );
    	the_title();
    	the_permalink();
    	the_content();
    	wp_reset_postdata();
    }
    
    // 1つ前の記事を表示
    if ( isset( $recent_posts[1] ) ) {
    	$post = $recent_posts[1];
    	setup_postdata( $post );
    	the_title();
    	the_permalink();
    	the_content();
    	wp_reset_postdata();
    }
    
    // 2つ前の記事を表示
    if ( isset( $recent_posts[2] ) ) {
    	$post = $recent_posts[2];
    	setup_postdata( $post );
    	the_title();
    	the_permalink();
    	the_content();
    	wp_reset_postdata();
    }
    トピック投稿者 hanahana-mai

    (@hanahana-mai)

    なるほどです、ありがとう御座いました。

    それぞれの方法で取得表示の確認ができました。
    offsetの設定でもできましたが、今回はjim912様に頂いたアドバイスの方法で対応してみたいと思います。
    皆様、感謝申し上げます!

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック「最新記事の前の記事の取得方法は?」には新たに返信することはできません。