記事をランダムに表示させる
関連記事や新着記事を呼び出す方法はたくさんありますが、たまに過去の記事を目にしてひらめくときってありませんか?
今回は、ランダムで投稿記事を表示する方法を紹介します。
サイドバーに一覧として出力するパターンと、スクロールを使ってコンパクトに表示する方法を紹介します。
ランダム記事を入れる場所
サイドバーに入れてみます。
sideber.phpの閉じタグ手前に入れます。
ランダムで出すソース
アイキャッチに画像が入っていない場合に、ノーイメージとして画像が出るように条件分岐しています。
お好みの画像を入れるか、不要な場合は削除してください。
記事数を変更する場合は、「showposts =>5」の数字を調整してください。
ここの数字が表示記事数になります。
<h3>ピックアップ</h3> <div class="pickup"> <ul class="lower-page"> <?php query_posts(array('orderby' => 'rand', 'showposts' => 5)); if (have_posts()) : while (have_posts()) : the_post(); ?> <li> <p><a href="<?php the_permalink(); ?>"> <?php if ( has_post_thumbnail() ): ?> <?php echo get_the_post_thumbnail($post->ID); ?> <?php else: ?> <img src="https://ドメイン/image/お好みの画像.png" alt="NO IMAGE" title="NO IMAGE" /> <?php endif; ?> </a></p> <p><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></p></li> <?php endwhile; endif; ?> </ul> </div>
立て並びで一覧表示させるCSS
サイドバーにアイキャッチとタイトルを並べただけのcssです。
.pickup ul { margin: 0; } .pickup li { list-style: none; } .pickup li p { margin-bottom: 0; } .pickup ul.lower-page li { margin-bottom: 1.5rem; } .pickup ul.lower-page li p { font-size: 0.8rem; line-height: 1.5; }
横並びにしてスクロールさせる
cssだけでスクロールできるんです。ピタッと止まってくれるスクロールの詳細は、こちらで紹介していますのでご確認下さい。
スライダーとかスクロールでピタッと止まって欲しい!scroll-snap-typeってなに
イメージはこんな感じになります。
5記事を横並びにしたときのスタイルを紹介します。
スマホサイズにしたときにスクロールがピタっと止まるので、ぜひお試しください。
.pickup ul.lower-page li { margin: 0 0.5rem 0.5rem; width: 275px; scroll-snap-align: start; padding: 0.5rem; list-style: none; } .pickup ul.lower-page li p { font-size: 0.8rem; line-height: 1.5; margin-bottom: 0; } .pickup ul.lower-page { width: 1600px; display: flex; margin: 0; } .pickup { height: 220px; overflow: hidden; width: 280px; max-width: 100%; overflow-x: scroll; border: 2px solid #666; margin: 1rem 0; box-shadow: 6px 5px #eee; scroll-snap-type: x mandatory; }
このサイトのサイドバーにもランダム記事をスクロールできるようにしていますので、確認してみてください。