記事が存在するかどうか調べて真偽値を返します。WordPressループの中で使うメソッドです。
have_posts();なし。
戻り値(返す値):真偽値。記事があればtrue、なければfalseを返す。
一般的にWordPressループの中で記事が存在するかどうかを判定するために使われます。下記のコードはWordPress開発で頻出するコードです。if文と組み合わせてメインクエリに記事があるかどうかを判定し、あればwhile文を使ってメインクエリから記事がなくなるまで処理を繰り返すコードです。
<?php if (have_posts()): // 記事があれば処理を開始 ?>
<?php while (have_posts()): // 記事がなくなるまでループ処理 ?>
<?php the_post(); // 処理対象の記事をセット ?>
<a href="<?php the_permalink(); ?>">
<?php the_title(); ?>
</a>
<?php endwhile; ?>
<?php endif; ?>例えばarchive.phpで記事一覧ページを作成する場合に、下記のようなコードで記事一覧を表示します。
<?php if (have_posts()): ?>
<ul class="cards">
<?php while (have_posts()): ?>
<?php the_post(); ?>
<li class="cards__item card">
<a class="card__link" href="<?php the_permalink(); ?>">
<div class="card__data">
<div class="card__img">
<?php if (has_post_thumbnail()) : ?>
<?php the_post_thumbnail(); ?>
<?php endif; ?>
</div>
<div class="card__date"><?php echo get_the_date('') ?></div>
<div class="card__title"><?php the_title(); ?></div>
</div>
</a>
</li>
<?php endwhile; ?>
</ul>
<?php endif; ?>※当サイトでは初期値とデフォルト値の言葉の定義を区別せず、原則統一して初期値を採用しています。