個別記事に3種類の一覧を重複なしで表示させたい
-
個別記事に「新着(新規記事)」「表示中のカテゴリ」「指定カテゴリ」の3つの一覧を記事の重複なしで表示させた上で、「表示中のカテゴリの一覧」は一部のカテゴリを除外したいと思っています。
「表示中のカテゴリの一部を除外」は、複数のカテゴリに所属する記事の場合に特定のカテゴリを除外するのが目的です。
現在は下記のコードを使用していますが、記事の重複がでてしまい、特定カテゴリの除外もできていない状態です。
ほかのコードも色々試してみましたが条件を満たすことができませんでしたので教えてください。複雑な質問になってしまい恐縮ですがよろしくお願いします。
<div class="topbody"> <h3>表示中のカテゴリ</h3> <?php foreach((get_the_category()) as $cat) { $cat_id = $cat->cat_ID ; break ; } $query = 'cat=' . $cat_id. '&showposts=4'; query_posts($query) ; ?> <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?> //HTML <?php endwhile; endif; ?> <?php wp_reset_query(); ?> </div> <div class="subbody"> <h3>新規記事</h3> <?php $post__not_in_ids = array(); $args = array( 'posts_per_page' => 4, 'cat' => 'cat_ID', ); $new_posts = get_posts( $args ); foreach ( $new_posts as $post ) : setup_postdata( $post ); $post__not_in_ids[] = get_the_ID(); ?> //HTML <?php endforeach; ?> </div> <div class="subbody"> <h3>指定カテゴリ</h3> <?php $cat_a_args = array( 'posts_per_page' => 4, 'cat' => 10, 'post__not_in' => $post__not_in_ids ); $cat_a_posts = get_posts( $cat_a_args ); foreach ( $cat_a_posts as $post ) : setup_postdata( $post ); ?> //HTML <?php endforeach; ?> </div> <?php wp_reset_query(); ?>
2件の返信を表示中 - 1 - 2件目 (全2件中)
2件の返信を表示中 - 1 - 2件目 (全2件中)
- トピック「個別記事に3種類の一覧を重複なしで表示させたい」には新たに返信することはできません。