2022.4.24|WordPress

WordPress(ワードプレス)で投稿記事を表示する「メインループ」と「サブループ」の基本知識

WordPress(ワードプレス)で、投稿記事を表示する「メインループ」と「サブループ」の基本知識

WordPress(ワードプレス)では、投稿記事を表示するために使われるPHPのコードの事を「ループ」といいます。WordPress(ワードプレス)で制作したそれぞれのWebページで投稿記事を表示しますが、この時に繰り返し処理を行うために記述する方法(プログラム)が「ループ」です。
Webページ内で最新の投稿記事一覧や条件を指定して投稿一覧などを表示する時に記述するコードです。

今回は、WordPress(ワードプレス)で、投稿記事を表示する「メインループ」と「サブループ」の基本知識を解説します。

2つのループ(メインループ、サブループ)とその違い

WordPress(ワードプレス)のWebページ内に条件に沿って投稿記事の形式を変更したり、取得する内容を変更したりする場合に記述するPHPコードのことを言います。「ループ」には、大きく分けて「メインループ」と「サブループ」の2つに分かれていて、それぞれ使う要素と記述方法が異なります。

【2つのループ】
・メインループ
・サブループ

メインループとは

メインループとは、投稿ページや固定ページの公開した記事一覧情報、または記事に付随した情報(タイトル、公開時間、カテゴリー、タグ)などをテンプレートファイル内の表示したい個所にPHPコード(メインループ)を記述することでそれらの情報を取得して表示させることができます。メインループでは、表示件数や表示順を指定して情報を取得することができます。
「have_posts」のif文で記事があるか、ないかを判断して処理が開始し、「endif」で処理を終了します。
投稿記事がある場合の処理と投稿記事がない場合の処理を行い、それぞれの個所にテンプレートタグを利用して記事の内容を表示します。

メインループの基本コード
// 処理を開始
<?php if(have_posts()): ?>
<?php while(have_posts()): the_post(); ?>
// 投稿記事がある場合の処理内容
<?php endwhile; ?>
<?php else: ?>
// 投稿記事がない場合の処理内容
<?php endif; ?>
// 処理を終了

サブループとは

サブループとは、メインループが取得できない特定のカテゴリーやカスタム投稿タイプの記事一覧情報、または記事に付随した情報(タイトル、公開時間、カテゴリー、タグ)などをテンプレートファイル内の表示したい個所にPHPコード(サブループ)を記述することでそれらの情報を取得して表示させることができます。サブループでは、あらゆる条件を指定して情報を取得することができます。
「WP_Query」のWordpressクラスで処理を開始し、「endif」で処理を終了します。
投稿記事がある場合の処理と投稿記事がない場合の処理を行い、それぞれの個所にテンプレートタグを利用して記事の内容を表示します。

サブループの基本コード

※カスタム投稿タイプ+カテゴリー指定+件数+降順の条件分岐
※カスタム投稿名を変更します。

// 処理を開始
<?php
$args = array(
'post_type' => 'カスタム投稿名', //カスタム投稿タイプを指定
'category_name' => 'news',//カテゴリースラッグ指定
'posts_per_page' => 5, //5件表示
'order'   => 'DESC',//記事の順番変更
);
$post_query = new WP_Query( $args );
if ( $post_query->have_posts() ) :
?>
<?php while ( $post_query->have_posts() ) : $post_query->the_post(); ?>
// 記事がある場合内容
<?php endwhile; ?>
<?php else: ?>
// 投稿記事がない場合
<?php endif; ?>
// 処理を終了

まとめ

「メインループ」と「サブループ」の違いは、大まかく言うと特別に条件を細かく指定をできるかできないかの違いです。基本的には「メインループ」を利用することで記事一覧は表示できますが、条件を指定したい場合は「サブループ」の利用となります。
WordPress(ワードプレス)では、記事情報の取得方法としては、この2通りをしっかり理解をして記述方法や条件分岐の方法がわかるようになれば基本な事は大体できます。この基本知識はかなり重要になりますので覚えておきましょう。