【WordPress】関連記事表示プラグイン無し

投稿の詳細ページなどで記事の終わりによくある関連記事の表示。
プラグインで実装することが多いそうですが簡単そうだったので自作してみます。

 <?php
    $category = get_the_category();
    $cat_ids = array();
     foreach ($category as $cat) {
      $cat_ids[] = $cat->term_id;
     }; ?>
      <?php
   $myposts = get_posts(array(
     'post_type' => 'post',
     'posts_per_page' => 8,
     'orderby' => 'rand',
     'category__in' => $cat_ids,
     'post__not_in' => array($post->ID),
    )); ?>

三行目以降のforeachで配列を作り投稿ID(カテゴリ)を代入しているのは全カテゴリのリストを作っておきそのリストから'category__in' => $cat_idsで表示中の記事のカテゴリを取り出しそれと同じ関連記事を表示させるからです。あとは表示件数や並び順を指定するだけです。

<?php foreach ($myposts as $post) : setup_postdata($post); ?>
  <a class="related-item" href="<?php the_permalink(); ?>">
    <div class="related-item-img">
      <?php if (has_post_thumbnail()) : ?>
        <?php the_post_thumbnail(); ?>
          <?php else : ?>
            <img src="" alt="">
         <?php endif; ?>
      </div><!-- /related-item-img -->
    <div class="related-item-title"><?php the_title(); ?></div>
<?php endforeach; wp_reset_postdata(); endif; ?>

最後にループを書いて完成。

この記事が気に入ったらサポートをしてみませんか?