get_postsのループを使用してトップページに
特定のカテゴリの最新記事を4件表示させようとしています。
カテゴリの構成はこうなっております
news
|
|-other1
|-other2
blog (親)(今回表示させるもの)
|
|-web(子)
|-movie(子)
|-art(子)
上記のカテゴリ「blog」の最新記事を4件表示させ
投稿ごとにその子要素のカテゴリ名、カテゴリ一覧へのリンクを出力させたいのですが
うまくいきません
コードは下記の通りです
PHP
1<?php 2 $args = array( 3 'posts_per_page' => 4, 4 'category_name' => 'blog' 5 ); 6 $posts = get_posts( $args ); 7 8 if($posts): 9 10 global $post; 11 foreach ( $posts as $post ): 12 setup_postdata( $post ); 13 14 $category = get_the_category(); 15 $cat_name = $category[0]->cat_name; 16 $cat_link = $category[0]->term_id; 17 18 //サムネイルの取得 19 if(has_post_thumbnail()): 20 $src = get_the_post_thumbnail_url(get_the_ID(),'full'); 21 else: 22 $src = '/ogp.jpg'; 23 endif; 24?> 25 26<article class="article"> 27 <div class="backImg" style="background: url('<?php echo $src ?>') center / cover;"></div> 28 <div class="article-txt"> 29 <?php the_time( 'Y/m/d' ); ?> 30 <div class="title-inr"> 31 <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a> 32 </div> 33 34 <a href="<?php echo get_category_link( $cat_link ) ?>" class="link"><?php echo $cat_name; ?></a> 35 </div> 36</article> 37 38<?php 39 endforeach; // ループの終了 40 wp_reset_postdata(); // 直前のクエリを復元する 41 endif; 42?>
このように記述すると、記事によって親要素のBlogと表示されることもあります。
配列の順番が変わってしまっているのは承知の上ですが、
ループ中の記事の子カテゴリだけを表示させる方法がございましたら
ご鞭撻いただけると幸いです