ワードプレス投稿に関連記事表示方法 コピペ
2023年07月31日
本日はワードプレスで投稿した記事に関連する記事を指定した件数で、同カテゴリーの記事をランダム表示させる方法を書いていきたいと思います。
関連記事表示を入れるのを完全に忘れてたので今から関連記事を当サイトに実装していき、その方法を書いていきます。
前回記事にした文章の途中に関連記事のリンクをいれる「ブログカード」とは違い、文章の最後に表示させる方法となります。
文章の途中に関連記事のリンクをサムネイル付きで入れるブログカードの作り方はこちらをご参照ください。
- 投稿記事に関連記事を表示させたい
- サイトにきた奴は逃がさねえ
- 記事は若干いい加減でもいい
- 少しでも為になれば
今回の完成見本はこんな感じで、記事の最下部に3件関連カテゴリーの記事を表示させたいと思います。

関連記事を表示でアクセス数アップ
設置方法の前に簡単ですが関連記事を表示させることのメリットをご紹介させていただきます。
例ですがユーザーに記事を見ていただいて、
「この記事結構おもしろかったな。写真付きで記事も書いてあるし、説明も丁寧で為になった。
他の記事もみてみよーっと。
あれ、同じような記事をみたいけど、どこにあるのかな?記事はおもしろかったけど、似た記事探すのもめんどくさいからほかのサイトにいっちゃえ。」
ってなることを防ぎます。
どんなにいい記事を書いても、サイト自体の使い勝手が悪い(どこに何があるかわかりずらい)とみている方の離脱率が上がってしまいます。
他には文字が小さいとか、色がたくさん使ってあって読みずらいとかがあります。
関連記事を読み終わりに表示することにより、同一の興味のある関連記事も読んでいただける可能性が大幅に上がります。
グーグル広告(パーソナライズド広告)みたいなものですね。グーグルで何度か検索したキーワードの関連した広告がでてきてびっくりしたことないですか?
パソコンを購入しようと検索したあとに、やたらと広告でパソコン系の広告が出てくる奴です。
つまり、興味のある人に興味のあることを提示すれば効果が高いってことですね。
記事に効果を当てはめると、高確率で読んでいただけるってことになります。
関連記事に似たものといえば、人気記事ラインキングなどがありますね。こちらも設置したいのですが、まじでアクセスがないので、もう少し皆様に見ていただけるようになったら設置を検討していきたいと思います。
関連記事を表示することで、離脱率を防ぎ回遊率アップ!
関連記事設置方法
それでは、関連記事の設置方法に入ります。
設置は下記を投稿ファイルのsingle.phpにコピペでOKです。
現在の記事を除いて、関連するカテゴリーの記事を3件ランダムで出力するコードになります。
<?php
$categories = get_the_category($post->ID);
if ( $categories ) :
$category_ID = array();
foreach($categories as $category):
array_push( $category_ID, $category -> cat_ID);
endforeach ;
$args = array(
'post__not_in' => array($post -> ID),//現在の記事を除く
'posts_per_page'=> 3,//記事数
'category__in' => $category_ID,//カテゴリー指定
'orderby' => 'rand' //ランダム取得
);
$related_posts = new WP_Query($args);
if( $related_posts-> have_posts() ): ?>
<?php
while ($related_posts -> have_posts()) :
$related_posts -> the_post();
?>
<!--ここに関連記事の表示方法を記入-->
<?php endwhile; ?>
<?php else : ?>
<!--関連記事がない場合に何か表示させたい場合はここに書く-->
<?php endif; ?>
<?php wp_reset_postdata(); ?>
<?php endif; ?> 21行目に関連記事の表示方法をいれればOKです。
もし関連記事がない場合(記事がもともとない)に「関連記事はありません」とかを表示させたい場合は26行目にいれればOKです。
表示する件数は10行目の数字で変更できます。
では最後にマリオ君の実際のコードをご紹介いたします。マリオ君の関連記事の表示方法はトップぺージなどで表示させている方法と同じように、リスト(li)で制作しアイキャッチを表示させて・タイトル・関連カテゴリ・日付を表示させてすべてをリンク(a)で囲っています。
マリオ君の関連記事設置見本
<?php
$categories = get_the_category($post->ID);
if ( $categories ) :
$category_ID = array();
foreach($categories as $category):
array_push( $category_ID, $category -> cat_ID);
endforeach ;
$args = array(
'post__not_in' => array($post -> ID),//現在の記事を除く
'posts_per_page'=> 3,//記事数
'category__in' => $category_ID,//カテゴリー指定
'orderby' => 'rand' //ランダム取得
);
$related_posts = new WP_Query($args);
if( $related_posts-> have_posts() ): ?>
<div class="kanrenbox">
<h6 class= "kanti"><span>こっちもみて!関連記事</span></h6>
<ul>
<?php
while ($related_posts -> have_posts()) :
$related_posts -> the_post();
?>
<li>
<a href="<?PHP the_permalink();?>">
<p>
<?php if (has_post_thumbnail()) : ?>
<?php
$post_title = get_the_title();
the_post_thumbnail('full',array('alt' => $post_title,));
?>
<?php else : ?>
<img src="<?PHP echo esc_url( get_template_directory_uri() ); ?>/img/nosum.jpg" alt="サムネイル画像no-image" />
<?php endif ; ?>
</p>
<h4><?PHP the_title();?></h4>
<ul>
<?php
//
if ($terms = get_the_terms($post->ID, 'category')) {
foreach ( $terms as $term ) {
echo ('<li>') ;
echo esc_html($term->name) ;
echo ('</li>') ;
}
}
?>
</ul>
<p class="days"><?PHP echo get_the_date();?></p>
</a>
</li>
<?php endwhile; ?>
</ul>
</div>
<!--kanrenbox終わり//////////////-->
<?php else : ?>
<!--関連記事がない場合に何か表示させたい場合はここに書く-->
<?php endif; ?>
<?php wp_reset_postdata(); ?>
<?php endif; ?>
liの中身をループで出力させています。
関連記事がない場合は何も表示させないので、61行目には何も入れていません。
アイキャッチの表示方法がわからない方はこちらで記事にしておりますのでご覧ください。
最後にCSSです。参考にならないかもしれませんが一応記載させていただきます。アイキャッチのimgには別途width100%を指定しています。
.kanrenbox{
margin: 80px 0 0;
@media screen and (max-width: 767px){
margin: 60px 0 0;
}
ul{
display: flex;
//justify-content: space-between;
flex-wrap: wrap;
margin: 50px 0 0;
}
li:nth-child(2){
margin:0 5% 40px;
@media screen and (max-width: 767px) {
margin:0 0 40px;
}
}
li{
width: 30%;
position: relative;
margin: 0 0 40px;
@media screen and (max-width: 767px){
width: 100%;
margin: 0 0 20px;
}
&::before{
content: '';
display: block;
width: 38px;
height: 57px;
position: absolute;
background:url("../img/bico.svg") no-repeat;
background-size: contain;
right: 0;
bottom: 0;
}
&::after{
content: '';
display: block;
width: 9px;
height: 15px;
position: absolute;
background:url("../img/aro01.svg") no-repeat;
background-size: contain;
right: 5%;
bottom: 5%;
}
a{
display: block;
position: relative;
height: 100%;
padding: 0 0 30px;
}
h4{
padding: 15px 5px;
}
ul{
margin: 0 ;
justify-content: flex-start;
flex-wrap: wrap;
}
li{
width: inherit;
font-size: 1.1rem;
background: #32B488;
border-radius: 20px;
padding: 5px 10px;
color: #FFF;
margin: 0 5px 5px 0 !important;
&::before,&::after{
display: none;
}
}
.days{
color: #CCC;
font-size: 1.2rem;
margin: 10px 0 0 5px;
@media screen and (max-width:374px) {
font-size: 1.0rem;
}
}
}
}
特に変わったことはしておりませんが、もともと、トップページで使っていたCSSの流用ですがトップぺージでは囲っているulのflexにはjustify-content: space-between;を入れていましたが、関連記事が2件しかないときに、離れて表示されて変な感じになるので、justify-content: space-between;をやめて、2個目のリストの左右にマージンをいれて、表示させています。
justify-content: space-between;で2件の場合はこんな感じでおかしかったので変更。

この説明関係ないですね。すいません。
いかがでしたでしょうか。関連記事を記事の最後に入れることによって、見ているユーザーの離脱率を減らし、回遊率を上げることに繫がりますので、まだ設置されていない方は、設置の検討をしてみてはいかがでしょうか。
以上がワードプレスで投稿した記事に関連する記事を指定した件数で、同カテゴリーの記事をランダム表示させる方法でした。
今回の設置コードはこちらのサイト様を参考にさせていただきました。ありがとうございます。
それではまた。
こっちもみて!関連記事
-
ワードプレスオリジナルテーマ作り方⑨ テーマ変更・固定ページ設定
- WordPress
- 自社ホームページ制作道のり
2023年05月25日
-
ワードプレスオリジナルテーマ作り方① 必要なファイル
- WordPress
- 自社ホームページ制作道のり
2023年05月21日
-
ワードプレスオリジナルテーマ作り方⑩お問い合わせフォーム
- WordPress
- 自社ホームページ制作道のり
2023年05月26日
-
Advanced Custom Fields実装見本
- WordPress
2023年06月28日
-
グーテンベルク ブロックを見やすくする方法
- WordPress
2023年08月09日
-
ワードプレスシェアボタンをコピペ設置、プラグイン無し
- SNS
- WordPress
- コピペ
2023年08月16日

