皆様の事業に貢献します

前回の記事ではカスタムメニュー機能を使ってナビゲーションメニューを表示させました。今回の記事は登録した記事や固定ページを表示させるテンプレートをご紹介します。

WordPressループ

前回の記事で

<?php the_post(); the_content(); ?>

というテンプレートタグが出てきました。このテンプレートタグについて詳しく調べて、これを使ったWordPressループというphpのプログラムで登録した記事や固定ページを表示させる方法をご紹介します。

WordPressループの仕組み

“the_post()”をご紹介する前に「ループ」について、どんなものかをご紹介します。

WordPressには「固定ページ」や「投稿」(これらをあわせて「記事」と呼びます)がデーターベースに記録されています。例えるなら、バインダーに「記事」が綴じ込まれているのをイメージしてください。WordPressで「記事」を表示させるには、phpのプログラムによって、

  • 表示させたい「記事」の条件を指定
  • 次にバインダーを閉じて表紙に戻ります。
  • バインダーをめくり「記事」を開きます。
  • 開いた「記事」が条件に合致しているか調べます
  • 一致していたら「記事」を表示させます。
  • 条件との一致を調べたら、また3つ上に戻ってバインダーをめくります。
  • バインダーの終わりまで繰返します。

この繰返しによって「記事」を表示させる仕組みのことをWordPressループと呼びます。厳密な説明ではないですが、上記の繰返しでWebを表示させているとイメージしてください。WordPressループの詳細についてはリンク先をご参照ください。

“the_post()”と”the_content();”の働き

“the_post()”は上のイメージで言うとバインダーをめくる働きがあります。また、”the_content()”には上の例えで言うと「記事」の内容を表示する(Webページとして出力する)働きがあります。

前回の記事では”page.php”に

<?php the_post(); the_content(); ?>

というphpのコードを記述しました。上の例えで言うと

  • バインダーをめくって「記事」を開く
  • 「記事」を表示させる

というphpのプログラムです。

ループのphpコード

前回の”page.php”はカスタムメニューのリンク先URLを表示させるだけだったので、上の例えの

  • 条件を指定する
  • バインダーの表紙にもどる
  • 条件と一致を調べる

については省略しました。

今回はちゃんとループするphpコードをご紹介します。

前回記事の”page.php”の

[php]
<?php the_post();the_content(); ?>
[/php]

の部分を

[php]
<?php
if ( have_posts() ) {
while ( have_posts() ) {
the_post(); ?>
         <p><?php the_content(); ?></p>
<?php
              }
                }
?>
[/php]

に置き換えます。WebMatrixで以下の様に編集して下さい。

[php]
<?php get_header();?>
<?php get_sidebar(); ?>
<!– コンテンツ –>
<div id="main">
<div id="top">
<h3><?php the_title(); ?></h3>
<div class="obj">
<?php
if ( have_posts() ) {
while ( have_posts() ) {
the_post();
?>
<p><?php the_content(); ?></p>
<?php
}
}
?>
</div>
</div>
</div>
<!– /コンテンツ –>

</div>
<!– /ボディ –>
<?php get_footer(); ?>
[/php]

Webページを表示させてメニューリンクを開くと各メニュー記事が表示されます。

このphpコードは9行目

if ( have_posts() ) {

の部分でバインダーの最後かどうかチェックしています。実は「記事」がバインダーに閉じこまれていない場合、バインダーの表紙が最後なので、最初にこのチェックをすることでバインダーに「記事」が綴じ込まれているかチェックしているのです。「記事」が綴じ込まれている(まだバインダーの最後でない)場合はwhile以下のコードに進みます。

次の10行目

while ( have_posts() ) {

では再度バインダーの最後かどうかチェックします。バインダーの最後でない場合はthe_post以下の11行目に進みます。

the_post(); ?>

でバインダーをめくり次の12、13行目に進みます。

<p><?php the_content();?></p>

でめくったバインダーの「記事」を表示します。ここでまた、10行目

while ( have_posts() ) {

に戻ります。バインダーの最後にきたら15行目でループから抜けます。

phpの”if構文”や”while構文”の詳細は他を適宜ご参照ください。

今回はWordPressループの仕組みと簡単なphpプログラム例をご紹介しました。次回は色々な条件を指定して記事を表示させる方法をご紹介する予定です。

春日渡辺会計事務所ではWeb制作を承ります

春日渡辺会計事務所では、WordPressによる格安Webサイト制作サービスをご提供しております。詳細はこちらをご覧下さい。ご依頼、お問い合わせはお問い合わせからお知らせ下さい。

春日渡辺会計事務所は文京区の会計士・税理士事務所です。皆様の事業を全力でサポートいたします。

[smartslider3 slider=5]
ページのトップへ戻る