WordPressで記事の一覧を作ろうと思ったときに調べることになるのが「ループ」です。「ループとはなにか」「どんな種類があるか」「用途」について初心者さんに向けて解説していきます!
ループとは何か
WordPressの「ループ」とは、投稿や固定ページなどのデータを、順番に取り出して表示する仕組みのことです。
たとえば記事一覧ページで、
- タイトル
- 投稿日
- 本文の一部
が繰り返し表示されているのは、この「ループ」が動いているからです。
WordPressでは、「表示する記事を用意する → それを順番に表示する」という処理を、まとめて ループ と呼びます。
メインループとは?
WordPressには最初から用意されているメインループ というものがあります。
これは、
- トップページ
- 記事一覧ページ
- カテゴリーページ
- 検索結果ページ
などで、「今表示すべき記事はこれです」と WordPress が自動で用意してくれるループです。
テーマ側では、その内容を
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<h1><?php the_title(); ?></h1> <!-- 記事のタイトルを取得・表示 -->
<?php the_content(); ?> <!-- 記事の本文を取得・表示 -->
<?php endwhile; endif; ?>のように書くだけで表示できます。
初心者のうちは、
「記事一覧が出ている=メインループが動いている」
と考えてOKです。
メインループでできること
メインループはとても便利で、
- 記事一覧を表示できる
- タイトル・本文・アイキャッチを表示できる
- ページネーションも自動で対応
など、普通のサイト表示に必要なことは一通りできます。
そのため、「とりあえず表示するだけ」ならメインループだけで問題ありません。
ただし、メインループには制限がある
ここが重要なポイントです。
メインループはWordPressが決めた条件に従って表示するループなので、次のようなことは簡単にできません。
並び順を自由に変えたい
たとえば、
- 更新日ではなく、古い順に並べたい
- 特定のカスタムフィールド順で並べたい
こういった場合、
メインループでは自由に制御できません。
表示件数をページごとに変えたい
設定画面では「1ページに表示する最大投稿数」を指定できますが、
- トップは5件
- 下層ページでは3件
- サイドバーでは最新3件
のように場所ごとに表示件数を変えることは、メインループだけでは難しいです。
特定の条件の記事だけを表示したい
たとえば、
- このカテゴリの記事だけ表示したい
- 特定タグの記事を除外したい
- 人気記事だけを表示したい
こういった細かい条件指定も、メインループには向いていません。
「こういう時」は別の方法が必要になる
ここで登場するのが サブループ という考え方です。
サブループとは、
- メインループとは別に
- 自分で条件を指定して
- もう一つループを作る
という方法です。
つまり、
- メインループ:WordPressが用意した標準の表示
- サブループ:開発者が意図的に作る表示
という役割分担になります。
サブループが必要になる典型例
初心者でもイメージしやすい例を挙げます。
- トップページの下に「最新記事3件」を表示したい
- サイドバーに「人気記事一覧」を出したい
- 特定カテゴリの記事だけを別枠で表示したい
こうしたケースでは、メインループとは別のループが必要になります。
このときに使われるのがWP_Query などを使ったサブループです。
まとめ:まずは「役割の違い」を理解しよう
- ループとは「記事を順番に表示する仕組み」
- メインループは「WordPressが自動で用意する表示」
- メインループは便利だが、自由度は高くない
- 並び順・件数・条件を変えたい時はサブループが必要

コメント