こばゆた
すでに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; ?>
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; ?>
また()内のパラメータには日付の表記を指定することができます。
<?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; ?>
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; ?>
本文が長い場合は[…]で省略されます。
こばゆた
他にもまだまだありますがキリがないのでこれくらいにしておきます
他にもどのテンプレートタグがあるかはManaさんのサイトにチートシートがあるのでいつでも確認できるようにしておきましょう!
日本語版 WordPress チートシート
...
コメント