記事が増えてくると、ブログの記事一覧ページはただの新着順では足りなくなります。カテゴリ、タグ、導線、検索意図を整理しておかないと、読者が次の記事へ進みにくくなります。
この記事では、WordPressブログの記事一覧ページを改善する方法を、カテゴリ・タグ・導線設計の視点からまとめます。オリジナルテーマを前提に、テンプレート例も紹介します。
SEOタイトル
WordPressブログの記事一覧ページを改善する方法【カテゴリ・タグ・導線設計】
meta description
WordPressブログの記事一覧ページを改善する方法を、カテゴリ・タグ・導線設計、archive.php、記事カード、ページネーションの実装例付きで解説します。
記事一覧ページで改善したいこと
- 新着記事だけでなく、テーマ別に探せるようにする
- カテゴリとタグの役割を分ける
- 記事カードに日付、タイトル、抜粋、画像を入れる
- ハブ記事や人気記事への導線を作る
- スマホでも横スクロールや押しにくいUIを避ける
カテゴリとタグの役割
| 分類 | 役割 | 例 |
|---|---|---|
| カテゴリ | ブログの大きな棚 | TECH、BASKETBALL、CREATE |
| タグ | 横断的なテーマ | WordPress、CSS、JavaScript、AI |
| ハブ記事 | シリーズの入口 | WordPressオリジナルテーマ開発まとめ |
archive.phpの基本形
カテゴリページやタグページでは、WordPressのメインループを使うのが基本です。独自のWP_Queryを作り直すより、まずは現在のクエリを活かす方がページネーションも扱いやすくなります。
<?php get_header(); ?>
<main class="blog-archive">
<header class="blog-archive__header">
<p class="blog-archive__eyebrow">BLOG</p>
<h1><?php echo esc_html(single_cat_title('', false) ?: '記事一覧'); ?></h1>
<?php if (category_description()) : ?>
<div class="blog-archive__description">
<?php echo wp_kses_post(category_description()); ?>
</div>
<?php endif; ?>
</header>
<?php get_template_part('template-parts/blog/topic-nav'); ?>
<?php if (have_posts()) : ?>
<div class="blog-archive__grid">
<?php while (have_posts()) : the_post(); ?>
<?php get_template_part('template-parts/card', 'post'); ?>
<?php endwhile; ?>
</div>
<nav class="blog-archive__pagination" aria-label="記事一覧のページ送り">
<?php the_posts_pagination([
'mid_size' => 1,
'prev_text' => '前へ',
'next_text' => '次へ',
]); ?>
</nav>
<?php else : ?>
<p>記事が見つかりませんでした。</p>
<?php endif; ?>
</main>
<?php get_footer(); ?>テーマ別ナビゲーションを置く
記事一覧の上部にテーマ別の導線を置くと、読者が興味のある記事群へ移動しやすくなります。タグを使う場合は、増やしすぎず、よく使うタグに絞るのがポイントです。
<?php
$topics = [
['label' => 'WordPress', 'url' => home_url('/tag/wordpress/')],
['label' => 'CSS', 'url' => home_url('/tag/css/')],
['label' => 'JavaScript', 'url' => home_url('/tag/javascript/')],
['label' => 'AI', 'url' => home_url('/tag/ai/')],
['label' => 'Basketball', 'url' => home_url('/tag/basketball/')],
];
?>
<nav class="topic-nav" aria-label="記事テーマ">
<ul>
<?php foreach ($topics as $topic) : ?>
<li>
<a href="<?php echo esc_url($topic['url']); ?>">
<?php echo esc_html($topic['label']); ?>
</a>
</li>
<?php endforeach; ?>
</ul>
</nav>CSSで読みやすく整える
.blog-archive {
width: min(100% - 32px, 1120px);
margin-inline: auto;
padding-block: 48px 72px;
}
.blog-archive__header {
display: grid;
gap: 12px;
margin-bottom: 28px;
}
.blog-archive__eyebrow {
margin: 0;
color: #e60033;
font-weight: 700;
}
.blog-archive__description {
max-width: 720px;
color: #475467;
line-height: 1.9;
}
.topic-nav {
margin-bottom: 28px;
overflow-x: auto;
}
.topic-nav ul {
display: flex;
gap: 10px;
margin: 0;
padding: 0 0 4px;
list-style: none;
}
.topic-nav a {
display: inline-flex;
align-items: center;
min-height: 38px;
padding-inline: 14px;
border: 1px solid #d9dee7;
border-radius: 999px;
color: #141414;
text-decoration: none;
white-space: nowrap;
}
.blog-archive__grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
gap: 24px;
}
.blog-archive__pagination {
margin-top: 40px;
}改善チェックリスト
- 一覧ページのH1がカテゴリ名やタグ名になっている
- カテゴリ説明文で何の記事群か分かる
- 記事カードのタイトルが2行から3行で読める
- ページネーションがスマホでも押しやすい
- ハブ記事、関連記事、人気記事への導線がある
参考リンク
内部リンク案
まとめ
記事一覧ページは、ブログの入口であり、回遊の分岐点です。カテゴリで大きく整理し、タグで横断導線を作り、記事カードとハブ記事で次に読む記事へつなげる。これだけで、記事が増えたときの読みやすさが大きく変わります。