have_posts()

設定されているクエリに投稿があるかを判断する

have_posts() は、クエリに対してその投稿があるかどうかをチェックする条件タグです。

使い方

have_posts()

【返り値】bool(true | false) 投稿があればtrue、ループの終わりや投稿がない場合はfalse。

パラメーターはありません。

詳細

この関数は投稿があるかの確認、またループを回す際に the_post() と組み合わせて使用されます。

<?php if(have_posts()): ?>
  <?php while(have_posts()): the_post(); ?>
    <!-- 投稿がループしているときに処理する内容 -->
  <?php endwhile; ?>
<?php else: ?>
  <!-- 投稿の取得が終わった後に処理する内容 -->
<?php endif; ?>

have_posts() は、$wp_query にある記事数とループカウンタを比較します。

※ループカウンタ・・・現在何記事目を表示しているかを制御するもの。

例えば、10個の記事が格納されていたら、1記事目・2記事目・3記事目…と表示するために、記事をカウントアップする必要があります。○記事目の数字を保持しているのが、このループカウンタです。

現在取得している記事の数字(ループカウンタ)と総記事数を比較することで「表示する記事があるか」ということを判断しています。
ループカウンタより総記事数の方が多ければtrue、総記事数を超えたところでfalseを返します。

公式コードファイルとドキュメントはこちら

/wp-includes/query.php

have_posts() - WordPress.org

コード Reference 一覧へ

TOPへ