【初心者向け】ループ処理の基本とループ内で使うテンプレートタグ【WordPress化】

基本のループ-アイキャッチ
こばゆた
こばゆた

すでにJavaScriptやPHPなどの言語を学習したことがある方はなんとなくわかると思いますがループ処理とは繰り返しですね。

Word Pressにおいてもこのループ処理を使うことによって情報を取得したり、表示したりということをします。

スポンサーリンク

1.WordPressでのループ処理

兎にも角にも作り方ですが、一見複雑そうに見えますが深く考えずに以下のような意味だと頭の片隅に入れておけば大丈夫です。

<?php if(have_posts()) : ?> <!--投稿があれば-->
<?php while(have_posts()) : the_post(); ?> <!--投稿がある分だけ処理を繰り返す-->

  <!--この中に処理を入れる-->

<?php endwhile; ?>
<?php else : ?> <!--投稿がなければ「記事がありません」と表示する-->
  <p>記事がありません</p>
<?php endif; ?>
ループを図解で示したもの

ちなみに投稿がある分というのは「ダッシュボード」→「設定」→「表示設定」→「1ページに表示する最大投稿数」で変えることができます。(メインクエリの場合。これについてはまた後日)

また以下の様に書いてもokです。

<?php if(have_posts()): while(have_posts()) : the_post(); ?>

    <!--この中に処理を入れる-->

<?php endwhile; ?>
<?php else : ?>
  <p>記事がありません</p>
<?php endif; ?>

ちょっとだけ短くなった分スマートですね。

スポンサーリンク

2.ループの中で使うテンプレートタグ

このループの中に埋め込んで使われるテンプレートタグにはどのようなものがあるかを例を挙げながらいくつか紹介しておきます。

テンプレートタグ使用前

この投稿を例にテンプレートタグを使った時の変化をみてみます。

<?php if(have_posts()): while(have_posts()) : the_post(); ?>
  <p><a href="#"><time>2012/11/30</time><span>環境への取り組み</span></a></p>
<?php endwhile; ?>
<?php else : ?>
  <p>記事がありません</p>
<?php endif; ?>

なお記事はサンプルで初めから入っているもの一つのみとなっております。

2-1.the_title()

記事のタイトルを表示します。

<?php the_title()?>

<?php if(have_posts()): while(have_posts()) : the_post(); ?>
  <p><a href="#"><time>2012/11/30</time><span><?php the_title(); ?></span></a></p>
<?php endwhile; ?>
<?php else : ?>
  <p>記事がありません</p>
<?php endif; ?>
the_title適用後

2-2.the_permalink()

記事のリンクを取得します。

<?php the_permalink(); ?>

<?php if(have_posts()): while(have_posts()) : the_post(); ?>
  <p><a href="<?php the_permalink(); ?>"><time>2012/11/30</time><span>環境への取り組み</span></a></p>
<?php endwhile; ?>
<?php else : ?>
  <p>記事がありません</p>
<?php endif; ?>

href属性のリンクにタグを入れます。

2-3.the_date()

「ダッシュボード」→「設定」→「一般」→「日付形式」で設定された形式で記事の投稿日を表示します。

<?php the_date()?>

<?php if(have_posts()): while(have_posts()) : the_post(); ?>
  <p><a href="#"><time><?php the_date()?></time><span>環境への取り組み</span></a></p>
<?php endwhile; ?>
<?php else : ?>
  <p>記事がありません</p>
<?php endif; ?>
the_date適用後

また()内のパラメータには日付の表記を指定することができます。

<?php the_date('Y.m.d')?>

上記のパラメータを記入すると20〇〇.0×.0×と表示されます。

2-4.the_content()

記事の内容を表示します。

<?php the_content(); ?>

<?php if(have_posts()): while(have_posts()) : the_post(); ?>
  <p><a href="#"><time>2012/11/30</time><span><?php the_content(); ?></span></a></p>
<?php endwhile; ?>
<?php else : ?>
  <p>記事がありません</p>
<?php endif; ?>
the_conten適用後

2-5.the_excerpt()

記事の抜粋を表示します。

<?php the_excerpt(); ?>

<?php if(have_posts()): while(have_posts()) : the_post(); ?>
  <p><a href="#"><time>2012/11/30</time><span><?php the_excerpt(); ?></span></a></p>
<?php endwhile; ?>
<?php else : ?>
  <p>記事がありません</p>
<?php endif; ?>
the_excerpt適用後

本文が長い場合は[…]で省略されます。

こばゆた
こばゆた

他にもまだまだありますがキリがないのでこれくらいにしておきます

他にもどのテンプレートタグがあるかはManaさんのサイトにチートシートがあるのでいつでも確認できるようにしておきましょう!

日本語版 WordPress チートシート
...

コメント