【WordPress】すべてのカテゴリー別にそれぞれの記事を取得、表示

投稿されているすべてのカテゴリー別に最近の記事の数件を取得、表示

カテゴリーごとにforeachでクエリーを取得してさらにforeachでその投稿内容を表示します。
ブログやお知らせトップの一覧などで利用します。

index.php等
<?php $categoryList = get_categories(); // すべてのカテゴリーを取得 foreach($categoryList as $categories) : // 登録されているカテゴリーの数だけ繰り返す ?> <?php query_posts('cat='.$categories->cat_ID); // カテゴリー別のクエリーを取得 if (have_posts()) : the_post(); ?> <?php // カテゴリー別の中身を取得 $category = get_the_category(); $cat_id = $category[0]->cat_ID; //カテゴリーID $cat_name = $category[0]->cat_name; //カテゴリー名 $cat_slug = $category[0]->category_nicename; //カテゴリースラッグ $cat_link = get_category_link($cat_id); //カテゴリーurl ?> <h2><? echo $cat_name; ?></h2> <p><a href="<?php echo $cat_link;?>" title="<?php echo $cat_name;?>">VIEW MORE &gt;&gt;</a></p> <ul> <?php $cat_posts = get_posts(array( 'post_type' => 'post', // 投稿タイプ 'category_name' => $cat_slug, // カテゴリをスラッグで指定する場合 'posts_per_page' => 3, // 表示件数 'orderby' => 'date', // 表示順の基準 'order' => 'DESC' // 昇順・降順 )); global $post; if($cat_posts): foreach($cat_posts as $post): setup_postdata($post); ?> <li><a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>"> <p><?php echo $cat_name; ?></p> <?php the_post_thumbnail('thumbnail'); ?> <time datetime="<?php echo esc_attr( get_the_date() ); ?>" title="<?php echo esc_attr( get_the_date() ); ?>"><?php the_time( get_option( 'date_format' ) ); ?></time> <h3><?php the_title(); ?></h3> </a> </li> <?php endforeach; endif; wp_reset_postdata(); ?> </ul> <?php endif; endforeach; wp_reset_query();?>

Yuki Nakata

中田デザイン事務所 代表。
WEBデザイナー(フリー)/ WEB講師(非常勤)/ 海外販売(法人)他

お仕事のご相談はお問い合わせフォームへお願いします。