WordPressで押さえておきたい「メインループ」と「サブループ」
WordPressでサイトを構築する際に欠かせない「メインループ」と「サブループ」について解説します。
ループとは
WordPressのループは、管理画面で作成した投稿や固定ページを取得し、サイトに表示するための処理です。
記事一覧ページや詳細ページ、固定ページなど、WordPressで生成されるほぼすべてのページでこの「ループ」が使用されています。
WordPressのループには以下の2種類があります。
・メインループ:テンプレートファイルに応じたデータを自動取得・表示。
・サブループ:条件を指定してデータを取得・表示。
用途に応じて適切に使い分ける必要があります。
メインループとは
メインループは、テンプレートファイル(例:archive.php、single.phpなど)の種類に応じて、自動的にデータを取得し表示する処理です。
主に以下の場合に使用します。
・記事一覧ページ(archive.php、category.phpなど)
・記事詳細ページ(single.php、page.phpなど)
ポイント
・1ページ(1テンプレートファイル)につき1回まで利用可能。
・表示件数などの詳細設定は、functions.phpや管理画面の設定で指定する必要あり。
メインループの記述例
1 2 3 4 5 6 7 |
<?php if ( have_posts() ) : ?> <?php while ( have_posts() ) : the_post(); ?> <!-- 投稿がある場合の処理内容(投稿日付や記事タイトルを取得する記述 等) --> <?php endwhile; ?> <?php else: ?> <!-- 投稿がない場合の処理内容 --> <?php endif; ?> |
注意点:メインループの動作
メインループはテンプレートファイルに依存して挙動が変わります。
たとえば、同じループを記述しても、以下のように結果は異なります。
・archive.php:全記事の一覧を表示。
・category.php:特定カテゴリーの記事一覧を表示。
また、メインループの表示件数は特に指定がなければ管理画面の「表示設定」に依存します。
細かな調整が必要な場合はfunctions.phpで制御する必要があります。
サブループとは
サブループは、条件を指定して特定のデータを取得・表示したい場合に使用します。
また、同じテンプレートファイル内で複数のループを使用する場合にも便利です。
サブループを使うケース
1.条件付きでデータを取得する場合
例:特定のカテゴリーや投稿タイプの記事を○件だけ表示。
2.複数のループを利用する場合
例:archive.phpで全記事一覧をメインループで取得し、人気記事や最近更新された記事をサブループで取得。
サブループの記述例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<?php $args = array( 'category_name' => 'pickup', // カテゴリースラッグを指定 'posts_per_page' => 5 // 5件表示 ); $the_query = new WP_Query($args); ?> <?php if ( $the_query->have_posts() ) : ?> <?php while ( $the_query->have_posts() ) : $the_query->the_post(); ?> <!-- 投稿がある場合の処理内容(投稿日付や記事タイトルを取得する記述 等) --> <?php endwhile; ?> <?php else: ?> <!-- 投稿がない場合の処理内容 --> <?php endif; wp_reset_postdata(); ?> |
上記の例では、「カテゴリーがpickupの記事を5件表示」という条件でデータを取得しています。
サブループの補足
サブループには複数の記述方法があります。
詳細な方法については、別記事で解説します。