WordPressループの基本構造と書き方

WordPressで投稿や固定ページを表示する際、中心的な役割を担うのが「ループ(The Loop)」です。
ループは、データベースから投稿を取得し、順番に出力するための仕組みであり、テーマ開発やカスタマイズを行う上で欠かせない基礎知識です。
この記事では、WordPressループの基本構造から書き方、よく使われる条件分岐までを、初心者でも理解できるよう丁寧に解説します。
Contents
WordPressループとは何か
WordPressループとは、投稿データを1件ずつ取得し、表示処理を繰り返す仕組みです。
トップページ、カテゴリー一覧、検索結果、個別投稿ページなど、ほぼすべての投稿表示にこの仕組みが使われています。
ループは次のような流れで動作します。
- 投稿が存在するかを確認
- 投稿があれば1件取得
- 取得した投稿データを表示
- 次の投稿があれば同じ処理を繰り返す
この一連の処理をPHPコードとして書いたものが「WordPressループ」です。
WordPressループの基本構造
最も基本的なループの書き方
まずは、WordPressで最も基本となるループ構造を確認します。
<?php if ( have_posts() ) : ?>
<?php while ( have_posts() ) : the_post(); ?>
<!-- 投稿の表示内容 -->
<?php endwhile; ?>
<?php endif; ?>このコードは、WordPress公式テーマでも使われている標準的な形です。
ループを構成する主要な関数
have_posts() の役割
have_posts() は、表示すべき投稿が存在するかどうかを判定する関数です。
投稿が1件以上あれば true を返し、すべて表示し終えると false になります。
そのため、if と while の両方で使われています。
the_post() の役割
the_post() は、現在の投稿を1件分セットする関数です。
この関数を実行すると、以下のようなテンプレートタグが使用可能になります。
the_title()the_content()the_permalink()the_time()
つまり、the_post() を実行しないと、投稿タイトルや本文を正しく取得できません。
投稿内容を表示する基本的な書き方
タイトルと本文を表示する例
<?php if ( have_posts() ) : ?>
<?php while ( have_posts() ) : the_post(); ?>
<article>
<h2><?php the_title(); ?></h2>
<div class="entry-content">
<?php the_content(); ?>
</div>
</article>
<?php endwhile; ?>
<?php endif; ?>このように、HTML構造の中にテンプレートタグを配置することで、投稿データを表示できます。
投稿が存在しない場合の処理
no posts found の書き方
投稿が存在しない場合に備えて、else を使った分岐を書くのが一般的です。
<?php if ( have_posts() ) : ?>
<?php while ( have_posts() ) : the_post(); ?>
<p><?php the_title(); ?></p>
<?php endwhile; ?>
<?php else : ?>
<p>表示する投稿がありません。</p>
<?php endif; ?>この処理を入れておくことで、検索結果が0件だった場合などにも適切な表示が行えます。
ループが使われる代表的なテンプレートファイル
WordPressテーマでは、以下のテンプレートファイル内でループが使われます。
index.phparchive.phpcategory.phpsearch.phpsingle.php
テンプレート階層の理解については、
WordPressテーマの基本構造とテンプレート階層
の記事もあわせて確認すると理解が深まります。
よくある注意点
ループの外でテンプレートタグを使わない
the_title() や the_content() は、ループの中でのみ正しく動作します。
ループ外で使用すると、意図しない投稿が表示されたり、何も出力されない場合があります。
HTML構造と見出し階層を意識する
ループ内で見出しタグを使う場合は、ページ全体の構造を考慮することが重要です。
見出しの使い分けについては、
HTMLの見出しタグ(h1〜h6)の正しい使い方
の記事が参考になります。
WordPressループを理解するメリット
WordPressループの仕組みを理解すると、以下のような応用が可能になります。
- 投稿一覧の自由なレイアウト調整
- カスタム投稿タイプの表示制御
- 条件に応じた表示切り替え
- 独自クエリの作成
テーマ開発や本格的なカスタマイズを行う上で、ループの理解は必須と言えます。
まとめ
WordPressループは、投稿を表示するための中核となる仕組みです。
基本構造はシンプルですが、正しく理解しておくことで、テーマ開発の幅が大きく広がります。
まずは、
have_posts()the_post()- テンプレートタグ
この3点を確実に押さえることが重要です。

