PAGE TOP

記事の最後に同カテゴリの記事をランダムに表示させる

関連記事をランダムに取得する方法

記事の最後に関連記事を置いて、他のページへの誘導を促す表現はよくありますね。

これを、特にプラグインを使わずphpの記述だけで、
同カテゴリの記事のサムネイルと記事タイトルをランダムに取得して表示する方法を紹介します。

PHP/HTML

単一記事ページの「single.php」の任意の場所に以下のコードを記述します

<?php
   $post_id = get_the_ID();
   foreach((get_the_category()) as $cat) {
   $cat_id = $cat->cat_ID ;
   break ;
   }
   query_posts(
      array(
      'cat' => $cat_id,
      'showposts' => 4,
      'orderby' => rand,
      'post__not_in' => array($post_id)
      )
   );
?>
<?php if(have_posts()) : ?>
<h3">こちらもおすすめ</h3>
      <ul class="related_list">
         <?php while (have_posts()) : the_post(); ?>
         <li>
            <a href="<?php the_permalink();?>"><?php the_post_thumbnail(); ?>
                  <h4>
                     <?php the_title(); ?>
                  </h4>
            </a>
         </li>
         <?php endwhile; ?>
      </ul>
<?php endif; ?>
<?php wp_reset_query() ?>

サンプルは「同一カテゴリの記事を最大4つまでランダムに表示する」という設定です。
記事数については、10行目の showpostsの数を、11行目でランダム取得にしています。
新着順に表示したい場合は11行目を削除してください。

サムネイルの取り扱いについては、「WordPressでサムネイル画像のサイズを自在に操る!」の記事も参考にどうぞ。


同じカテゴリのおすすめ記事

  • カテゴリー

  • 最近の投稿

  •