WordPressの記事を表示する際に、繰り返されるループの基本的な「while文」と関数を理解していきます。かなり基本なことですね。
ここで出てくるものは、
- while文
- have_posts()関数
- the_post()関数
になります。
WordPressループの中では、以下のように使われているのをよく目にします。
1 |
while(have_post()):the_post(); |
簡単に言うと、「WordPressのデータベースから取り出した、投稿や固定ページを1件ずつ表示しなさい」という意味になります。
それぞれの内容は、以下のようになります。
- while…処理を繰り返す構文
- have_post()…記事があるかを調べる関数
- the_post()…記事を取得(表示)する関数
先程の一文を少し難しく表現すると、「次の記事があるかどうかを調べて、あれば記事を取得(表示)しなさい」といった訳になります。
次に、それぞれの役目を理解していきましょう。
while(処理を繰り返す)
while文は一般的に、「“while”に始まり“endwhile”で終わる」という形式があります。
1 2 3 |
<?php while (have_posts()) : the_post(); ?> //表示内容 <?php endwhile; ?> |
改行を加えて、見やすい記述に書き換えると、
1 2 3 4 5 6 |
<?php while (have_posts()) { the_post(); //表示内容 } ?> |
というようになります。
while文では、( )に記述される条件を満たす間は、{ }内の内容を繰り返すということになります。
上の例で言えば、「the_post();」以下が繰り返されるということになり、意味合いとしては、「1件の記事を表示する(=the_post();)」ことを繰り返す。ということですね。つまり、記事があるだけ繰り返し表示するという構文になっています。
the_post()
the_post()は、「1件の記事を取得(表示)する」というWordPress関数(タグ)になります。while文の中で実際に使われているのをよく目にするかと思います。
have_posts()
have_posts()は、「記事がある場合」という意味で、厳密な記述は、「have_posts() == true」となります。ここでは、「==true」を省略した書き方をしていますが、その答えがtrueの場合は、記事の表示を続けるという条件でwhile文が動作しています。
1 2 3 4 5 |
<?php while (have_post()==true) { //記事がある場合 the_post(); //1件の記事を取得(表示)する } ?> |
ここまで簡単にまとめてみましたが、以上のことを理解した上でループ処理をまとめると、
1 2 3 4 5 |
<?php while (have_post()) : the_post(); } ?> |
という構文が出来上がります。きちんと理解できれば難しいことではないので覚えていきたいですね。