楽天セール開催中!ポイント最大11倍! セール会場へ

WordPress自作テーマ制作⑥│アーカイブページ(記事一覧ページ)の作成

クラシックテーマのカテゴリー・タグ・日付などの一覧をarchive.phpで表示します。WordPressのメインクエリをそのまま使い、抜粋とページ送りを表示する例です。category.phpやtaxonomy.phpなど、より優先度の高いテンプレートがある場合はそちらが使われます。

目次

著者

WEB制作をしているデジタルノマド
WordPressのカスタマイズが好きで、色々と自作しています。

WordPressのカスタマイズに困ったらご相談ください!

archive.phpを作成する

自作テーマのフォルダーにarchive.phpを作成し、以下を保存します。既存ファイルがある場合はバックアップして置き換えてください。header.phpとfooter.phpは前の回で作成したものを使います。

<?php get_header(); ?>
<main id="main-content" class="main-content">
<?php the_archive_title('<h1 class="title">', '</h1>'); ?>
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
<article>
<h2 class="title"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
<?php if (has_post_thumbnail()) : ?><figure class="thumbnail"><?php the_post_thumbnail(); ?></figure><?php endif; ?>
<div class="excerpt"><?php the_excerpt(); ?></div>
</article>
<?php endwhile; ?>
<?php the_posts_pagination(['prev_text'=>'前へ', 'next_text'=>'次へ']); ?>
<?php else : ?><p>表示できる記事がありません。</p><?php endif; ?>
</main>
<?php get_footer(); ?>

ページ送りの見出しを残す

the_posts_paginationが出すscreen-reader-textは支援技術向けの見出しです。HTMLを正規表現で削除せず、表示だけを次のCSSで整えます。自作テーマのstyle.cssへ追加してください。

.screen-reader-text { border:0; clip:rect(1px,1px,1px,1px); clip-path:inset(50%); width:1px; height:1px; margin:-1px; overflow:hidden; padding:0; position:absolute!important; word-wrap:normal!important; }
.screen-reader-text:focus { clip:auto!important; clip-path:none; width:auto; height:auto; position:static!important; }

アーカイブのページ番号と404を分けて確認する

カテゴリーに検証用の投稿を3件用意し、1ページ2件の条件で番号リンクを操作しました。1ページ目は2件、2ページ目は残り1件です。スマホ幅390pxで「2」と「1」をEnterで開き、同じカテゴリーの一覧へ戻れることを確認しました。サイドバーの「最近の投稿」と、main内の一覧件数は分けて数えてください。

存在しない99ページ目へのアクセスではHTTP 404になり、archive.phpの「記事がありません」の分岐は使われませんでした。404.phpがない検証テーマではmainが空になるため、archive.phpだけで範囲外のページを案内できるとは考えないでください。

案内文と検索欄を出すには、制作⑧の404.phpを同じ自作テーマのフォルダーへ配置します。その組み合わせで99ページ目を再確認し、HTTP 404と「ページが見つかりませんでした。」、検索欄の表示を確認しました。タグ・日付・空のタグを確認した結果は次節にまとめます。

カテゴリー一覧の2ページ目に残り1件とページ番号を表示した実画面
カテゴリー一覧の2ページ目。main内の残り1件と「前へ」「1」の番号リンクを確認しました。

タグ・日付・0件の一覧を確認する

開く一覧確認した結果
投稿3件のタグ・1ページ2件1ページ目2件、番号2で残り1件。URLのタグ条件も保持
2025年2月・3月の月別一覧2月の2件と3月の1件をそれぞれ表示
登録済み・投稿0件のタグHTTP 200。タグ見出しと「表示できる記事がありません。」を表示
投稿のない2024年2月HTTP 404。404.phpの案内と検索欄を表示

2026年10月3日、WordPress 7.1.2の独立した検証環境で、掲載コードを含む自作クラシックテーマの実クエリを確認しました。タグ一覧の番号2はEnterで開き、main内に残り1件が出ることも確認しています。投稿0件でも、登録済みの空タグと、投稿のない月では使われたテンプレートが異なりました。0件だから必ずarchive.phpになるとは判断せず、HTTP状態と見出しを照合してください。

タグではtag.php、日付ではdate.phpがあるとarchive.phpより優先されます。ファイル名はarchive.phpです。詳しい選択順はWordPressのテンプレート階層を参照してください。今回はPC幅1280pxで表示を確認しました。

空タグ用の文言を直すときはarchive.php、404の案内を直すときは404.phpを編集します。両ファイルを先に保存し、問題があれば変更したファイルをその原本へ戻します。

自作テーマのタグ一覧2ページ目に残り1件を表示
2026年10月3日、独立したWordPress 7.1.2の自作クラシックテーマで撮影。タグ一覧の2ページ目に残り1件を表示しています。

確認する画面と戻し方

検証環境で「設定 → 表示設定」の1ページの表示件数を小さくして、2ページ目まで確認します。確認後は元の件数へ戻します。カテゴリーとタグ、記事がない一覧、長いタイトル、PC・スマホ幅を対象にし、Tabでページ番号へ移動してEnterで遷移できることを確かめます。

この例はメインクエリ用です。独自WP_Queryの一覧にそのまま流用するとページ数が合わない場合があります。投稿一覧のhome.phpと検索結果のsearch.phpも別のテンプレートです。問題があればarchive.phpと追加CSSを変更前へ戻してください。旧GitHubサンプルとは同期していません。

関連手順:WordPress自作テーマ制作⑦│検索結果ページの作成

よくある質問:WordPress自作テーマでアーカイブページを作成するとき

archive.phpは、どのページを表示しますか?

記事では、クラシックテーマのカテゴリー・タグ・日付などの一覧をarchive.phpで表示します。WordPressのメインクエリをそのまま使い、抜粋とページ送りを表示する例です。

category.phpなどがある場合は、どうなりますか?

記事では、category.phpやtaxonomy.phpなど、より優先度の高いテンプレートがある場合はそちらが使われます。タグではtag.php、日付ではdate.phpがあるとarchive.phpより優先されます。詳しい選択順はWordPressのテンプレート階層を参照してください。

ページ送りの見出しは、削除してよいですか?

削除しないでください。記事では、the_posts_paginationが出すscreen-reader-textは支援技術向けの見出しなので、HTMLを正規表現で削除せず、表示だけをCSSで整えます。CSSは自作テーマのstyle.cssへ追加します。

存在しないページ番号にアクセスしたら、どうなりますか?

記事では、存在しない99ページ目へのアクセスではHTTP 404になり、archive.phpの「記事がありません」の分岐は使われませんでした。404.phpがない検証テーマではmainが空になるため、archive.phpだけで範囲外のページを案内できるとは考えないでください。案内文と検索欄を出すには、制作⑧の404.phpを同じ自作テーマのフォルダーへ配置します。

投稿が0件のタグや月は、どのテンプレートになりますか?

記事では、投稿0件でも、登録済みの空タグ(HTTP 200で、タグ見出しと「表示できる記事がありません。」を表示)と、投稿のない月(HTTP 404で、404.phpの案内と検索欄を表示)では使われたテンプレートが異なりました。0件だから必ずarchive.phpになるとは判断せず、HTTP状態と見出しを照合してください。

ページ送りは、どう確認しますか?

検証環境で「設定 → 表示設定」の1ページの表示件数を小さくして、2ページ目まで確認します。確認後は元の件数へ戻します。記事では、Tabでページ番号へ移動してEnterで遷移できることを確かめます。サイドバーの「最近の投稿」と、main内の一覧件数は分けて数えてください。

独自のWP_Queryの一覧にも、そのまま使えますか?

使えない場合があります。記事では、この例はメインクエリ用で、独自WP_Queryの一覧にそのまま流用するとページ数が合わない場合があります。投稿一覧のhome.phpと検索結果のsearch.phpも別のテンプレートです。

元に戻すには、どうしますか?

archive.phpと追加CSSを変更前へ戻します。空タグ用の文言を直すときはarchive.php、404の案内を直すときは404.phpを編集し、両ファイルを先に保存しておいて、問題があれば変更したファイルをその原本へ戻します。既存のarchive.phpがある場合は、バックアップして置き換えてください。

どこまで動作確認されていますか?

記事では、2026年10月3日に独立したWordPress 7.1.2の検証環境で、掲載コードを含む自作クラシックテーマの実クエリを確認し、スマホ幅390pxで番号リンクの操作、PC幅1280pxで表示を確認したとされています。すべての環境での表示を確認したものではありません。

  • URLをコピーしました!

制作をご依頼いただく場合

WordPressのホームページ制作

サイトの目的と更新方法に合わせて、構成・デザイン・WordPressの構築をご相談いただけます。対応範囲、制作実績、最新の費用・制作期間はサービスページをご確認ください。

WAZAの有料記事のサブスクリプションも開始しました。

サービス

Service

WordPressサイトのカスタマイズのサービスに関心がありましたら、ぜひ詳細をご覧ください。

目次