WordPressのオリジナルテーマ カテゴリーなどのアーカイブページの作成

目的

  • 投稿の一覧(カテゴリー、タグ、日付など)をアーカイブページで表示できるようにする
  • 見出しにアーカイブの種類(カテゴリー名など)を表示する
  • archive.php を作成して、WordPressが自動で振り分ける仕組みを理解する

アーカイブページとは?

アーカイブページとは、カテゴリー別一覧・タグ別一覧・投稿年月別一覧・投稿者別一覧などを表示するテンプレートです。

  • カテゴリー一覧:example.com/category/news/
  • タグ一覧:example.com/tag/summer/
  • 年別・月別アーカイブ:example.com/2025/08/
  • 投稿者別:example.com/author/admin/

WordPressが自動で振り分けて archive.php を使用します。

ファイルの作成

テーマフォルダ unnhanbur 内に archive.php を新規作成します。

archive.php のコード例

<?php get_header(); ?>
<!-- ヘッダー読み込み -->

<main class="archive-page"> <!-- アーカイブページ用の全体クラス -->

  <!-- アーカイブタイトルと説明 -->
  <div class="sub-title">
    <h1><?php the_archive_title(); ?></h1> <!-- カテゴリー名やタグ名などを表示 -->
    <p><?php the_archive_description(); ?></p> <!-- アーカイブの説明文(任意) -->
  </div>

  <!-- 投稿一覧を並べる -->
  <div class="container archive-list">
    <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
    
      <!-- 各投稿を表示するカード -->
      <article class="archive-item">
        <a href="<?php the_permalink(); ?>"> <!-- 投稿詳細へのリンク -->

          <!-- アイキャッチ画像がある場合だけ表示 -->
          <?php if (has_post_thumbnail()) : ?>
            <div class="archive-thumb">
              <?php the_post_thumbnail('medium'); ?> <!-- 中サイズのサムネイル -->
            </div>
          <?php endif; ?>

          <!-- 投稿日・タイトル・抜粋 -->
          <div class="archive-meta">
            <time datetime="<?php echo get_the_date('Y-m-d'); ?>">
              <?php echo get_the_date('Y年n月j日'); ?>
            </time>
            <h2><?php the_title(); ?></h2>
            <p class="excerpt"><?php echo get_the_excerpt(); ?></p>
          </div>

        </a>
      </article>

    <?php endwhile; else : ?>
      <p>投稿が見つかりませんでした。</p>
    <?php endif; ?>
  </div>

  <!-- ページネーション(複数ページ分かれる場合) -->
  <div class="pagination">
    <?php the_posts_pagination(); ?>
  </div>
</main>

<?php get_footer(); ?>
<!-- フッター読み込み -->

使用しているテンプレートタグの解説

関数・タグ解説
the_archive_title()「カテゴリー: お知らせ」「タグ: ◯◯」など自動生成されたタイトルを出力します。
the_archive_description()カテゴリーやタグの「説明」に入力されていれば表示されます。
get_the_date()各記事の投稿日を取得(the_time() より確実)。HTML属性にも安心。
the_post_thumbnail('medium')アイキャッチ画像を「中サイズ(300px)」で表示します。
get_the_excerpt()本文の抜粋を自動生成または手動入力で表示します。
the_posts_pagination()WordPress標準のページ送り(ページ番号・次へなど)を表示します。

archive.php はどんなときに使われる?

アーカイブ種別
カテゴリー/category/news など
タグ/tag/design など
著者別/author/username
月別/2025/07 など
投稿タイプ別/blog など(カスタム投稿タイプにより)

クラス構成

クラス名用途
.archive-pageアーカイブページ全体のスタイリング
.sub-title上部見出し部分(タイトルと説明)
.container.archive-list投稿一覧を並べるためのブロック
.archive-item投稿1件のブロック。カード風レイアウトを想定
.archive-thumbアイキャッチ画像を囲む枠
.archive-meta日付・タイトル・抜粋などのテキスト情報
.paginationページネーション(ページ送り)部分