【WordPress】全記事一覧ページを作成する方法

WordPressを使ってブログを運営しているなら、全記事一覧ページを設けることは、ユーザーエクスペリエンス向上やSEOの観点から重要です。しかし、WordPressのデフォルトの設定では、通常は投稿一覧がフロントページに表示されるだけです。今回は、WordPressのカスタムページテンプレートを活用して、独自の全記事一覧ページを作成する方法を紹介します。

スポンサーリンク

カスタムページテンプレートの作成

最初に、全記事一覧ページ用のカスタムページテンプレートを作成します。これは、テーマフォルダ内に新しいPHPファイルを作成することから始まります。通常、テーマフォルダのルートディレクトリにテンプレートファイルを保存します。

ファイル名は任意です。
例:all-posts-template.php

ページテンプレートにコードを追加

テンプレートファイルには、記事一覧を表示するためのコードを追加します。以下は、記事のタイトルと内容を表示する例です。

<?php
/*
Template Name: 全記事一覧
*/

get_header(); // ヘッダーを読み込みます

$args = array(
    'post_type' => 'post', // 投稿タイプを指定
    'posts_per_page' => -1, // すべての記事を表示
);

$query = new WP_Query($args); // カスタムクエリを作成

if ($query->have_posts()) {
    while ($query->have_posts()) {
        $query->the_post();
        // 投稿のタイトルや内容を表示
        the_title();
        the_content();
    }
} else {
    // 記事が見つからない場合のメッセージ
    echo '記事が見つかりませんでした。';
}

get_footer(); // フッターを読み込みます
?>

ページの作成と公開

WordPressの管理ダッシュボードにログインし、新しいページを作成します。ページを作成する際に、右側の「ページテンプレート」セクションから、「全記事一覧」(または作成したテンプレート名)を選択し、ページを作成し、公開します。

一覧ページへのアクセス

最後に、作成した全記事一覧ページにアクセスできるように、メニューにリンクを追加するか、サイドバーまたはフッターウィジェットにリンクを作成します。これにより、訪問者が簡単に全ての記事を閲覧できるようになります。

よくある質問(FAQ)

Q. WordPressで全記事の一覧を表示するページを作るにはどうすればよいですか?
A. WP_Queryでposts_per_page=-1を使うか、ページネーション付きで表示します:$query = new WP_Query(["post_type"=>"post", "posts_per_page"=>-1, "orderby"=>"title", "order"=>"ASC"]);。記事数が多い場合は-1ではなくページネーションを実装することを推奨します。
Q. 年月別に記事を並べて表示するにはどうすればよいですか?
A. WP_Queryを年月でグループ化します。wp_get_archives()でアーカイブリストを生成するか、カスタムクエリで年月順にソートして表示します。$archives = get_terms_by_year_month();という関数はWordPressに存在しないため、ループ内で年月を判定してグループヘッダーを追加する実装が一般的です。
Q. カテゴリ別に記事を整理して全記事一覧を作るにはどうすればよいですか?
A. get_categories()で全カテゴリを取得し、各カテゴリごとにWP_Queryを実行します。ただし記事数が多いとパフォーマンスが低下するため、キャッシュ(トランジェントAPI)の活用を検討します。静的なHTMLページとしてキャッシュするプラグインも有効です。