
いやもーほんとに、WordPressやるのなら誰でも知ってる基礎中の基礎なんですけど、例えばTOPページにお知らせの項目があって記事のタイトルを最新記事から3件だけ表示させたいとか、そんな場面で使えるロジックを今回はご紹介です。
それじゃあまず最終的には↓↓みたいな感じで記事を投稿したら新しい記事のタイトルが先頭に来て・・・というのを仕上がり目標にしましょう。
それじゃあ、ここでWordPressの記事の繰り返しの基本です。
WPの記事繰り返しの基本形
<?php if (have_posts()) : ?> <?php while (have_posts()) : the_post();?> /*ここに書かれた内容が記事の数だけ繰り返し*/ <?php endwhile; ?><?php else : ?> /*繰り返す記事が無い場合ここに書かれた内容が表示される*/ <?php endif; ?>
この記述がWPの繰り返しの基本構文です。じゃあ、実際に投稿記事のタイトルが表示されるように記述を追加します。
投稿記事のタイトルが繰り返される様に記述を追加
<?php if (have_posts()) : ?> <?php while (have_posts()) : the_post();?> <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a> <?php endwhile; ?><?php else : ?> <div>残念ながら記事が見つかりません。</div> <?php endif; ?>
the_permalink()はタイトルに対応する詳細記事のURLを取得する関数で、the_title()は記事のタイトルを取得する関数になります。
実際に編集しながらやっている方はお分かりだと思うんですが、この書き方だと記事の数だけ繰り返し=全記事のタイトルとなってしまい。全ての投稿記事のタイトルが出てきちゃいます。そこで登場するのがquery_posts()関数です。これを使用すると最新記事から何件だけなどの条件を付けることが可能となります。じゃあ実際に最新3件しか表示されない様に変更しましょう。
<?php query_posts('showposts=3'); ?> <?php if (have_posts()) : ?> <?php while (have_posts()) : the_post();?> <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a> <?php endwhile; ?><?php else : ?> <div>残念ながら記事が見つかりません。</div> <?php endif; ?>
このように記述をすれば最新3件のみのタイトルが表示されるようになります。ちなみにquery_posts(‘showposts=○’)の○の中の数字が取り出したい記事の件数になります。