【wordpress自作テーマ】今表示されている記事と同じカテゴリーの記事を関連記事で表示する
こんにちはふるぽんです。
今回は、ブログなどでサイドバーやページの下部にあるような、読んでいる記事の関連記事を表示する方法です。
正確には、読んでいる記事と同じカテゴリーの記事を表示する。です。
では行ってみましょう。
カテゴリーの情報を取得してループの設定をする
以下がコードになります。
<?php
$cats = get_the_category($post->ID);
$cat_ID = array();
foreach ($cats as $cat) :
array_push($cat_ID, $cat->cat_ID);
endforeach;
$args = array(
'post_type' => 'post',
'post__not_in' => array($post->ID),
'posts_per_page' => 3,
'category__in' => $cat_ID,
'orderby' => 'rand',
);
?>
$catに読んでいる記事のカテゴリーIDを取得します。
$cat_IDに取得したカテゴリーIDを格納します。
array_pushはPHPの関数です。
配列に要素を追加したい時に使用します。
以下のように書きます。
array_push(追加先の配列,追加する値1,追加する値2,…)
array_pushについて詳しくはこちらをどうぞ
ここでは$cat_IDという配列に$cat->cat_IDでカテゴリーのIDを追加しています。
そして$argsにループの設定をしていきます。
‘post__not_in’ => array($post->ID), //今読んでいる記事以外
‘posts_per_page’ => 3, //表示する数
‘category__in’ => $cat_ID, // 読んでいる記事カテゴリーを含む
‘orderby’ => ‘rand’, //ランダム
という感じです。
取得したカテゴリーの記事を表示
次にループで表示していきます。
見づらくなるので、class名は削除しています。
以下はサブループです。サブループについてはこちらの記事をどうぞ
$query = new WP_Query($args);
if ($query->have_posts()) :
while ($query->have_posts()) : $query->the_post();
?>
<li >
<div>
<?php if (has_post_thumbnail()) :
the_post_thumbnail();
else : ?>
<img src="http://myproject.local/wp-content/uploads/2008/06/img_0767.jpg" alt="">
<?php endif; ?>
</div>
<div >
<p >
<a href="<?php the_permalink();?>">
<?php echo wp_trim_words(get_the_title(),20,'');?>
</a>
</p>
</div>
</li>
<?php endwhile;
wp_reset_postdata();
else:
?>
<p>同じカテゴリーの記事はありません</p>
<?php endif;?>
wp_trim_wordsで文字数を制限しています。
詳しくはこちら
以上が、読んでいる記事と同じカテゴリーの記事を関連記事として表示する方法です。
わからないことがあれば、DM頂けましたら僕にできることはお手伝い&助言いたします。
こちらは40代の僕が独学で学習してきたことです。
何を勉強しようか迷ったら参考までにどうぞ
さばかんブログ - ビットコインなどの仮想通貨とNFT、おすすめの副業などの情報を発信
仮想通貨(暗号資産)初心者のあれこれを発信します。仮想通貨を勉強したい方、これからビットコインなどを始めたい方への記事を、初心者にも分かりやすく解説していきます。
ゲームで仮想通貨の不労所得を稼ぐ【オンラインカジノBetfuryのやり方】