特定の同じカテゴリーの最新記事一覧を表示する方法~「最近の投稿」ではムリ?【WordPress】

当ブログのように、興味あることをどんどん放り込んで行くようなブログだと、最終的には、どこに何があるのか

「わけがわからないよ」(キュウベ◯)

ということになってしまいそうです。

あの、WordPressのウィジェットで「最近の投稿」ってありますよね。あれだと、カテゴリ関係なく新しい記事がどんどん表示されますので、もうごちゃ混ぜ状態なんですよね。

「同じカテゴリの最新記事一覧」の必要性

で、せっかく当ブログに来てくれた人が「なんだこりゃ?」ってなるんじゃないかと。

やっぱりね、たとえば「免疫力カテゴリ」の記事にやってきた人は、免疫力関連の記事を見たいですよね。

免疫力関連の記事にやってきたのに、「最近の投稿」にモンストの記事が出てたら・・・やっぱり「なんだこりゃ?」ってなりそうですよね。^^;

だから、そのカテゴリだけの最新記事を表示させたいわけです。

そこで、「今見ている記事」と「同じカテゴリ」の最新記事「だけ」を表示させる方法はないものかと・・・ちょっと調べてみました。

そうすると、あるんですね。WordPressって便利です。

表示させるためのコード

「同じカテゴリの最新記事一覧」

を、表示させたい場所に、以下のコードを貼り付けます。

<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(); ?>

これを普通は、「single.php」のソースに貼り付けます。

えーと、WordPress管理画面の「外観」→「テーマの編集」ですね。そこから「single.php」を探して、それで貼り付けます。

サイドバーの一番上に当たる部分に貼り付けますと、当ブログのような表示になります。

具体的には・・・

具体的な貼り付け方

当ブログは「賢威」という有料のワードプレステンプレートを使っているのですが、「single.php」の中の、

<?php get_sidebar(); ?>

という記述のすぐ上に貼り付けています。

でも、ただ貼り付けただけじゃ見た目がね、他の表示と統一されないんですよね。だから、スタイルシートに合わせてちょっとだけ書き加えます。

「賢威」の場合は以下のように。

<aside class=”sub-conts sidebar”>
<section id=”recent-posts-2″ class=”section-wrap widget-conts widget_recent_entries”><div class=”section-in”>
<h3 class=”section-title”><?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’ => 20,
‘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(); ?>

</div></section>
</aside>

太字の部分が付け加えた部分です。これで、「最近の投稿」というのと、同じ表示になりました。

他のテンプレートを使っている場合は、ブラウザでソースを表示させて、サイドバーの他の表示に合わせて書き加えればいいと思います。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする