- 理解のために分解する。
<body>
<?php if(have_posts()) :?>
<?php while(have_posts()) :?>
<?php the_post(); ?>
<h1><?php the_title(); ?></h1>
<?php the_content(); ?>
<?php endwhile; ?>
<?php endif; ?>
</body>
- if(have_posts()):
- if文、条件分岐。if()の括弧の中がtrueであるとき…
- have_posts
- posts、投稿を持っている(have)、保有しているとき…
- もし投稿があるならば、投稿を取得しなさい。そして、endifまでしなさい。
- while(have_posts())
- while文、条件が合う限り反復する。
- while(have_posts())
- 投稿があるかぎり、投稿を取得しなさい。そして、endwhileまでのことを、投稿があるかぎり繰り返します。
以下が繰り返す内容になります
- the_post
- ループの中で、順番に次の投稿に進みなさい。
- the_title
- 投稿のタイトルを書き出しなさい
- the_content
- 投稿の内容を書き出しなさい。
すべてを総合すると、
- 投稿があるならば、
- 投稿の数だけ、
- 順番に、タイトルと、内容を書き出しなさい。
ということになります。
- 検証画面をみると、「the _title();」には自動的にタグが付与されません。だから<h1>タグを自分でつけないといけない。
- けれども、「the_content();」には自動的に<p>タグが付きます。
- 条件式の後は「:」、endif endwhileのあとは処理の終わりだから「;」普通はピリオドが終わりで、カンマが息継ぎ。コンピュータ言語はセミコロンが終わりで、コロンが息継ぎ。
- endwhile()ではない。endwhileのみ。()は要らない。条件はすでに記述済。
https://www.tecking.org/archives/2830