自分のブログに訪問してくれた人には、せっかくなので色んな記事を読んでもらいたいですよね。そのためにはアクセスした記事だけでなく、他の記事も読みたくなるような導線が必要です。
導線の一つとして使えるのが、見ている記事と同一カテゴリーの最新記事一覧です。記事にアクセスしてくれたということは、多少なりともその分野に興味を持ってくれているということなので、同じカテゴリーに属している記事の方が目に留まる可能性は高くなります。
私自身、調べものなどをしていてアクセスしたサイトに、同じカテゴリーの記事一覧が表示されていたらついつい見ちゃいます。
そこで今回は、見ている記事と同じカテゴリーに属している最新記事一覧を表示する方法をご紹介したいと思います。
同一カテゴリーの最新記事一覧を表示するコード
ネット上でよく見かけるのは、以下のようなコードです。
<h3><?php the_category(' | ') ?>の最新記事</h3> <?php foreach((get_the_category()) as $cat) { $catid = $cat->cat_ID ; break ; } $get_posts_parm = "'numberposts=5&category=" . $catid . "'"; ?> <ul> <?php $posts = get_posts($get_posts_parm); ?> <?php foreach($posts as $post): ?> <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li> <?php endforeach; wp_reset_postdata(); ?> </ul>
このコードをテーマファイル内の表示させたい場所に追加することで、同一カテゴリーの最新記事一覧が表示できます。numberposts=5 の数字を変更することで表示する件数を調整します。
ただ、このままだと記事一覧の中に見ている記事も含まれてしまいます。一覧の中に見ている記事が含まれているのは、あまりスタイリッシュではありませんよね。
そこで、おすすめしたいのは、見ている記事を除外するコードです。
<h3><?php the_category(' | '); ?>の最新記事</h3> <?php $post_id = get_the_ID(); foreach((get_the_category()) as $cat) { $cat_id = $cat->cat_ID ; break ; } query_posts( array( 'cat' => $cat_id, 'showposts' => 5, 'post__not_in' => array($post_id) ) ); if(have_posts()) : ?> <ul> <?php while (have_posts()) : the_post(); ?> <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li> <?php endwhile; ?> </ul> <?php endif; ?> <?php wp_reset_query(); ?>
このように記述すれば、見ている記事は一覧から除外することができます。
表示する記事の件数は、11行目の ‘showposts’ => 5 の数字を変更して調整してください。上記のままだと、5件になります。
コードを追加すると、以下のように同一カテゴリーの最新記事一覧がリストで表示されます。あとは好きなように CSS でスタイリングしましょう。
あとがき
個人的には記事下に設置するのがいいのではないかと思います。ほぼコピペで簡単に設置できるので、ぜひお試しください。