WordPressで「カテゴリ別」でしかも「年代別」に記事一覧を表示する方法

WordPressを利用していると、カテゴリやアーカイブス(年月日)で情報を整理する機会が多いと思いますので、「カテゴリ別+年代別」という複合技を試してみました。

せっかくなのでこれを機に「記事一覧を表示させる方法」の整理も兼ねて紹介させていただきます。

(1)最新記事一覧を表示する

まず最初に、最新記事を一覧で表示させる方法はこんな感じです。
[php] <?php
$posts = get_posts(‘numberposts=0’);
?>
<?php foreach($posts as $post): ?>
<a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>">
<?php the_title(); ?></a>
<?php endforeach;?>
[/php] ※記事の表示数を100 件にしたい場合は、numberposts=100 とします。


(2)特定カテゴリの記事一覧を表示する

次は「特定のカテゴリ(ID=5)」で絞り込んで記事一覧を表示させる方法で、ソースはこんな感じです。
[php] <?php
$posts = get_posts(‘numberposts=0&category=5’);
global $post;
?>
<?php if($posts): foreach($posts as $post): setup_postdata($post); ?>
<a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>">
<?php the_title(); ?></a>
<?php endforeach; endif;?>
[/php]

(3)「特定カテゴリ」でしかも「年代別」に記事一覧を表示する

特定のカテゴリ(ID=5)で絞り込み、且つ「年代別」に分類して記事一覧を表示する方法はないものか?とあれこれ試していたら、個人的にはこんな感じで着地しました。
[php] <?php
$posts = get_posts(‘numberposts=0&category=5’);
foreach($posts as $post) :
setup_postdata($post);
?>
<?php the_date( Y, ‘<li>’, ‘年</li>’ . "\n" ); ?>
<a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>">
<?php the_title(); ?></a>
<?php endforeach; ?>
[/php]
the_date() 関数を追加したのですが、the_date() の引数が「Y」なら、表示は「4桁の年」になります。年代の新しいものからズラズラ~と記事が表示されていくので、見栄えが良いようにマークアップする必要があります。

複数のカテゴリで年代別の記事一覧を表示させたり、記事一覧を折りたたむなどの工夫を凝らす場合は、もう少しカスタマイズする必要がありそうですね。またやってみようと思います。

合ってるのかな…?と思いながらも、今のところは過去日付で記事を投稿しても上手く年代別に出力してくれている模様です♪

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください