Wordpressのループ

WordPressのループについてまとめてみました。普段テーマ作成をする度に書くのも面倒くさい時があるので、テンプレートを用意しておくと楽かと思います。Wordpressループの簡単な説明、ループの種類やループ内の記述などをまとめています。

WordPressのループ

作成日
2014/05/13
更新日
2016年8月16日

WordPressのループについてまとめてみました。普段テーマ作成をする度に書くのも面倒くさい時があるので、テンプレートを用意しておくと楽かと思います。

WordPressのループとは

投稿の情報などを表示する際に必要なPHPコードで、Wordpressのテンプレートタグなどを利用します。
管理画面から入力した投稿などの情報をデータベースから引っ張って来るわけですが、接続や取得する条件などをWordpressのテンプレートタグによって行うことにより、簡易化したPHPコードで取得条件の指定や表示ができるようになります。
ループは何をしているかというと、次の記事があるまで記事を取得して処理を繰り返し行います。次の記事がなければループが終わります。このようにして取得→処理の繰り返しを行うのですが、記事ページや最新記事一覧などもループで行う場合がほとんどだと思います。
ループで何を取得するかはパーマリンクと関係があります。パーマリンクによって記事が読み込まれています。そのため、記事ページではその記事をループで処理し、カテゴリーページでは該当カテゴリーの記事を管理画面で設定した表示件数分だけ繰り返し処理します。これはメインループといい、表示されているページによって異なる記事を読み込みます。パーマリンクについてはこちら

ループの種類

ループにはいくつかの種類があります。時と場合によって使い分ける必要があります。
調べていると以下のサイトが参考になりました。
参考URL:http://wpxtreme.jp/understanding-wordpress-loops-and-queries

基本ループ

have_posts()はWordpressの関数で、投稿がある場合はtrueを、なければfalseを返します。
if~else~endifはPHPの条件分岐で、この場合は「もし投稿があれば」elseまでを行います。elseは「その他の場合」なので、「記事がなかった場合」endifまでの記述を実行します。
while~endwhileは条件を満たしている場合まで、繰り返しendwhileまでの処理を行います。この場合、記事があり続けるまでendwhileまでの記述を実行します。
よって、繰り返しthe_post()が行われるわけですが、the_postは次の記事があるか調べ、あれば記事を読み込みます。

メインループを変えてループする(WP_Queryを利用)

メインループは表示されているページや管理画面の設定によって取得する記事や件数が異なりますが、一時的にメインループを変更し独自の設定で記事を取得することができます。

$PostSetに条件を指定し、WP_Queryにセットしています。これによって指定した条件での記事の取得が可能ですが、指定したくないところは削除してもかまいません。最後のwp_reset_postdata();はメインクエリーを戻すために必要になります。

ループ内の記述

ループ内には取得した記事を表示する処理を行いますが、wordpressには様々なテンプレートタグが用意されています。

表示する

ループ内に以下の記述をすることで吐き出されます。

取得する

何か処理を加えたいときに取得する方法です。取得については「WordPress ループ内で投稿情報を取得する」でまとめてあります。

    コメントを残す

    メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Category

Archive