サポート » 使い方全般 » ポストの一覧表示について

  • 解決済 11907551

    ポストの一覧表示についてご質問させていただきたいと思います。
    下記の条件でポストを一覧表示させたいのですが、該当及び解決しているトピックが御座いませんでしたのでこちらに投稿させていただきました。

    ◎指定した複数のカテゴリーからそれぞれ最新の記事を4件ずつ呼び出し、新しい順に表示したい。

    カテゴリID 3,4,5,6,7,8,9から各カテゴリの最新記事4件ずつ新しい順に表示したいと考えています。
    ※カテゴリID1,2は3~9までの親カテゴリーです。

    お力添えいただけますと幸いで御座います。
    よろしくお願いします。

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • 例えば下の関数だと『カテゴリID 3の記事を4件表示する』になりますよね。

    query_posts('showposts=3&cat=4'

    これを踏まえてヒントに成りませんか?

    トピック投稿者 11907551

    ご助言有難うございます。

    現在はquery_postsを利用して指定カテゴリーを指定件数で表示しています。

    query_posts(‘showposts=3&cat=4’

    これを応用して、
    「指定した複数のカテゴリーから4件ずつ表示させる」
    「表示させた記事を新しい順番に並べる」
    この二つの条件を満たす方法を思考錯誤しましたが、今も解決策が見いだせない状態にあります。

    query_posts
    を使わない方法も検討しました。

    指定した複数のカテゴリーから4件ずつ表示させる事は可能なのですが、これを新しい順番に並べる事ができません。
    どうしても各カテゴリー毎に並んでしまいます。
    そもそもカテゴリーを無視して新しい順番に並べる記述をしていないので並ぶ訳はないのですが。。。

    大変ご迷惑をおかけしますが、具体的なループのヒントをいただけると嬉しいです。

    何卒、よろしくお願いします。

    モデレーター Takuro Hishikawa

    (@hissy)

    複数のカテゴリーから4件ずつ投稿を取得し、それを混ぜあわせて新しい順に表示するということですか?

    トピック投稿者 11907551

    hissyさん
    ご閲覧、有難うございます。

    はい、その通りです。

    モデレーター Takuro Hishikawa

    (@hissy)

    未検証ですが、こんな感じで書けると思います

    <?php
    global $post;
    
    $cats = array('cat-a','cat-b','cat-c','cat-d');
    $the_posts = array();
    foreach ($cats as $cat) {
    	$args = array( 'posts_per_page' => 4, 'category_name' => $cat );
    	$_posts = get_posts( $args );
    	foreach ($_posts as $_post) {
    		$the_posts[$_post->post_date] = $_post;
    	}
    }
    
    krsort( $the_posts );
    
    foreach ( $the_posts as $date => $post ) {
    	setup_postdata( $post );
    	?>
    	<h1><?php the_title(); ?><small><?php the_date(); ?></small></h1>
    	<?php
    }
    
    wp_reset_postdata();
    ?>
    トピック投稿者 11907551

    hissyさん
    本当に有難うございます。こちらの方法で解決する事が出来ました。
    そして、とても勉強になりました。

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