「ループ」を使って投稿を表示してみよう!【have_post(), the_post()】
しゅーた(@chibasyuta)です!
・「ループ」を使った投稿を表示
・PHPのコロン構文
・have_post()
・the_post()
この辺をこの記事で扱います。
https://chibasyuta.org/category/programming/wordpress/
まず、ループを書く際に使う、PHPのコロン構文について
<?php if ( have_posts() ) { ?>
<h2>記事があります</h2>
<?php } ?>
<?php if ( have_posts() ) : ?>
<h2>記事があります</h2>
<?php endif; ?>
・下のが「コロン構文」です。
・「代替構文」になります。
・if、 while、for、 foreach、switch などで使える
「WordPress」におけるループとは?

<?php if ( have_posts() ) : ?>
<?php while ( have_posts() ) : ?>
<?php the_post(); ?>
<article id="post-<?php the_ID(); ?>">
<h2><?php the_title(); ?></h2>
<div class="entry-content">
<?php the_content(); ?>
</div>
</article>
<?php endwhile; ?>
<?php endif; ?>
「WordPress」で「複数」の「記事の情報」を使う際は、ループの中で使います。
<?php if ( have_posts() ) : ?>
まず、
<?php if ( have_posts() ) : ?>
で、ループするための記事が存在しているかどうか、確認します。
elseを使えば、処理を分けることもできますし、単純にエラーが防げます。
<?php while ( have_posts() ) : ?>
<?php while ( have_posts() ) : ?>
は、普通のwhile文です。
記事がある限り、下記のコードを繰り返します。
これによりタイトルの列挙などができます。一覧ページなどで使えそうですね。
<?php the_post(); ?>
重要です。
<?php the_post(); ?> はPHPのビルトイン関数ではなく、WordPressの関数です。
何をしているかというと、
「グローバル変数 $post」にデータをセットする
という関数です。
the_title() 投稿のタイトルを表示
the_content() 投稿の本文をすべて表示
the_excerpt() 投稿の「抜粋」を表示
the_permalink() その記事の個別ページへのURL(リンク)を表示
これらは、「グローバル変数 $post」からデータを取り出す関数です。
なので、ループの中で、<?php the_post(); ?> を使ってあげることが「重要」ということですね。
まとめ!
・「ループ」を使った投稿を表示
・PHPのコロン構文
・have_post()
・the_post()