カテゴリー毎に記事一覧を表示

WordPress

デフォルトの「投稿」にある「カテゴリー」毎に投稿一覧を表示するコードです。

表示イメージ

カテゴリー1の名前

  • カテゴリー1の記事_1
  • カテゴリー1の記事_2

カテゴリー2の名前

  • カテゴリー2の記事_1
  • カテゴリー2の記事_2

コード

<?php
// カテゴリーを取得.
$categories = get_categories();

// 各カテゴリーごとにループ.
foreach ( $categories as $category ) :

	$category_title = $category->name; // カテゴリーの名前.
	$category_slug  = $category->slug; // カテゴリーのスラッグ.

	?>
	<!-- カテゴリー名 -->
	<h2><?php echo esc_html( $category_title ); ?></h2>
	<?php
		// ここから記事のループ.
		$args  = array(
			'post_type'      => 'post', // 投稿タイプ「post」.
			'post_status'    => 'publish',
			'posts_per_page' => 4, // 表示件数.
			'category_name'  => $category_slug,
		);
		$query = new WP_Query( $args );
		?>
		<?php if ( $query->have_posts() ) : ?>
			<?php
			while ( $query->have_posts() ) :
				$query->the_post();
				?>
				<?php the_title(); ?>
				<!--
				ここに表示したい内容を記述.
				<?php the_permalink(); ?>
				<?php the_title(); ?>
				-->
			<?php endwhile; ?>
			<?php
		endif;
		wp_reset_postdata();
		?>
	<?php
endforeach;
?>

※ カスタム投稿とカスタムタクソノミーの場合は表記が異なります。

この記事の執筆・検証

シゴトノコバコ編集部

Web制作10年以上。コーポレートサイト、大手企業LPなど構築をメインに実務経験あり。デザイン/印刷の実務経験も多少あり