【WordPress】記事詳細ページに関連記事一覧のリンクを設置

記事詳細ページに関連記事一覧のリンクを設置する方法。

下記のコードで同じカテゴリーの記事を呼び出します。

<?php
  $categories = get_the_category();
  $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',
  );
  $query = new WP_Query($args); 
?>

posts_per_pageが記事の取得件数になります。「3」を「5」に変更すると最大5件表示されます。

記事のカテゴリーが複数選択されている場合、「AもしくはB」で取得されます。(AとB両方)

'orderby' => 'rand','orderby' => 'date','order' => 'DESC',に変更すると新着順、'orderby' => 'date','order' => 'ASC',にすると古い順になります。

orderbyのパラメータは、その他にも以下のようなオプションがあります。

date 投稿日時による並び替え(デフォルト)
title タイトルによる並び替え
name スラッグによる並び替え
modified 最終更新日時による並び替え
parent 親投稿のIDによる並び替え
rand ランダムに並び替え
comment_count コメント数による並び替え
menu_order メニュー順による並び替え(ページの場合のみ)
meta_value カスタムフィールドの値による並び替え
meta_value_num カスタムフィールドの数値値による並び替え

下記のコードで関連記事一覧のリンクを書き出します。(設置したい場所に、表示したいHTMLで設置する。)

<?php if( $query -> have_posts() ): while ($query -> have_posts()): $query -> the_post(); ?>
  <a href="<?php the_permalink() ?>">
    <?php the_title(); ?>
  </a>
<?php endwhile; else:?>
  <p>関連記事はありません</p>
<?php endif; ?>
<?php wp_reset_postdata(); ?>

実際にこのページにも設置しているのでご確認ください。(HTMLやCSSは調整しています。)

参考:https://tamatuf.net/wordpress/wordpress-category-in-article/


関連記事

コメントを残す

*