WordPressの関連記事をプラグインなしで表示する方法
2017.11.07
関連記事といえばsimilar postsやYARPPなどが有名ですが、
他のプラグインとのバッティングや動作の負荷になって表示が遅くなることもあるため、そもそもあまりプラグインをガンガン入れるのはおすすめできません。
そこで、プラグインなしでも比較的シンプルに実装できる「関連記事」の設置方法をご紹介します。
といってもコピペでOKなやつです。
コピペで動く関連記事表示用コード
下記をテンプレートファイルsingle.phpの、表示したい位置に設置します。
dlタグで挾まれた部分が実際の表示箇所なので、必要に応じてCSSなどで整えます。
<?php
$categories = get_the_category($post->ID);
$category_ID = array();
foreach($categories as $category){
array_push($category_ID,$category->cat_ID);
}
$posts_number = 5; // 表示したい件数を指定
$args = array(
'post__not_in'=>array($post->ID), // 現在のページの投稿を除外
'category__in'=>$category_ID, // 現在の投稿のカテゴリーの関連記事を取得
'orderby'=>'rand', // ランダムに並べる
'posts_per_page'=>$posts_number, // 表示する件数の指定
);
$wp_query = new WP_Query($args);
if($wp_query->have_posts()){
while($wp_query->have_posts()):$wp_query->the_post();
?>
<dl>
<dt><?php the_post_thumbnail('thumbnail'); ?></dt>
<dd><h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3></dd>
</dl>
<?php
endwhile;
}else{
?>
// 関連記事がないときの内容を書きます
<?php } ?>
ざっくりですが、内容的には
WP_Queryを使って、現在の記事のカテゴリ内から記事をランダムに表示する、
という仕組みです。
ちなみにcategory__inの箇所で現在のカテゴリを指定していますが、ここで別のカテゴリを指定すれば、当然そのカテゴリの記事が表示されます。
