Custom Post Type UIなどでカスタム投稿タイプを作成したのに、アーカイブページ(記事一覧)が表示されない場合の対処法です。
原因:「アーカイブあり」がfalseになっている
Custom Post Type UIのデフォルト設定では、「アーカイブあり(Has Archive)」がFalseになっています。これをTrueに変更する必要があります。
プラグイン側の設定
- Custom Post Type UI → 投稿タイプの編集
- 「投稿タイプスラッグ」を確認
- 「アーカイブあり」をTrueに変更

設定変更後、パーマリンクの空更新(設定 → パーマリンク設定 → 何も変えずに「変更を保存」)を忘れずに。
テーマ側の設定
テーマ内にarchive-{投稿タイプスラッグ}.phpを作成します。
例:カスタム投稿タイプのスラッグがblogの場合 → archive-blog.php
archive-blog.phpの中身
<?php get_header(); ?>
<div class="entry-list">
<?php
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args = array(
'paged' => $paged,
'posts_per_page' => 12,
'post_type' => 'blog',
);
$wp_query = new WP_Query($args);
if ($wp_query->have_posts()) :
while ($wp_query->have_posts()) : $wp_query->the_post();
?>
<div class="entry-item">
<a class="entry-item__link" href="<?php the_permalink(); ?>">
<p class="entry-item__ttl"><?php the_title(); ?></p>
<time class="entry-item__day"><?php the_time('Y.m.d'); ?></time>
</a>
</div>
<?php
endwhile;
the_posts_pagination();
endif;
wp_reset_postdata();
?>
</div>
<?php get_footer(); ?>
ポイント
post_type— カスタム投稿タイプのスラッグを指定(プラグイン設定のスラッグと一致させる)posts_per_page— 1ページあたりの表示件数the_posts_pagination()— WordPress標準のページネーション関数
チェックリスト
アーカイブページが表示されない場合は、以下を順に確認:
- Custom Post Type UIの「アーカイブあり」がTrueになっているか
- パーマリンクの空更新をしたか
- テーマファイル名がスラッグと一致しているか(
archive-{スラッグ}.php) -
post_typeの指定がスラッグと一致しているか