最近書いた記事をサイドバーなどに表示する方法を紹介します。
今回のポイントとなるテンプレートタグはquery_posts()です。このタグをつかうとループ内に表示する記事の表示件数を変えたり、特定のカテゴリに属する記事のみ抽出することができます。
たとえば次のようにすると最新5件の記事タイトルを表示します。
<?php if ( have_posts() ) : query_posts('showposts=5'); ?>
<ul>
<?php while (have_posts()) : the_post(); ?>
<li><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></li>
<?php endwhile;?>
</ul>
<?php endif; ?>
query_posts()の引数はいろいろあるのでけっこう自由に絞込みができると思います。詳しくは以下のページで。
WordPress Codex 日本語版ドキュメント -- query posts
次の例はカテゴリで絞り込むパターンです。たとえばカテゴリ2の記事を5件表示するには次のように書きます。
query_posts( ' showposts=5&cat=2 ' );
カテゴリ名でもいけます。「ウェブデザイン」というカテゴリがあったとすると・・・
query_posts( ' showposts=5&category_name=ウェブデザイン ' );
ただしカテゴリのスラッグを見ているようなので日本語表記とスラッグが異なっていると日本語で指定してもうまくできません。URLはできるだけ短くしたいほうなのでスラッグを短く設定してます。なので個人的にはカテゴリIDのほうが使いやすいですね。
最新の記事をトップに表示して、それより古い記事を違うレイアウトで表示したいときに使える方法です。
query_posts( ' showposts=5&offset=1 ' );