WordPressアーカイブページをカスタマイズ!archive.phpの使い方徹底解説

WordPressのarchive.phpをカスタマイズする方法を紹介するブログ記事のアイキャッチ画像

1. はじめに

archive.phpは、WordPressテーマの中でアーカイブページ(カテゴリ・タグ・日付・投稿者など)を表示するためのテンプレートファイルです。本記事では、自作テーマをベースにarchive.phpの基本構造と、よくあるカスタマイズ方法を紹介します。

2. archive.phpの基本構造

WordPressのテンプレート階層では、カテゴリページやタグページ、日付別アーカイブなどが表示される際にarchive.phpが使われます。以下は基本的な構成例です:

<?php get_header(); ?>
<main>
  <h1><?php the_archive_title(); ?></h1>
  <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
    <article>
      <h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
      <p><?php the_excerpt(); ?></p>
    </article>
  <?php endwhile; endif; ?>
</main>
<?php get_footer(); ?>

3. よくあるカスタマイズ例

・タイトルの表示を変更する

the_archive_title()を加工して、不要な接頭辞を削除するなどの調整が可能です。

・カテゴリごとに異なるデザインを適用する

is_category()を使ってカテゴリ名に応じた装飾を加えることができます。

・表示件数を変更する

functions.phpにて、pre_get_postsフィルタを使えば、アーカイブページの投稿件数を制御できます。

・投稿タイプごとに表示内容を変える

get_post_type()で投稿タイプを取得し、異なるレイアウトを適用することが可能です。

4. 条件分岐で柔軟な表示にする

カテゴリやタグごとに見出しを変更する例:

<?php if (is_category('news')) : ?>
  <h1>ニュース一覧</h1>
<?php elseif (is_category('blog')) : ?>
  <h1>ブログ記事</h1>
<?php else : ?>
  <h1><?php the_archive_title(); ?></h1>
<?php endif; ?>

5. デザインの工夫ポイント

  • カード型レイアウトにすることで視認性アップ
  • アイキャッチ画像(the_post_thumbnail())を表示する
  • カスタムフィールドや投稿メタを活用する

6. カスタマイズ時の注意点

  • category.phptag.phpなど、より優先度の高いテンプレートがあるとarchive.phpは使われません。
  • 条件分岐は優先順位に注意して正しく書く必要があります。
  • テーマのアップデートによる影響を避けるため、カスタマイズは子テーマで行うのが安全です。

7. まとめ

archive.phpを理解し、柔軟にカスタマイズすることで、サイト全体のユーザー体験を向上させることができます。次のステップとして、category.phpやカスタム投稿タイプのアーカイブ対応に挑戦してみましょう。

8. 参考リンク