投稿をランダムで表示させる【WordPress】

投稿をランダムで表示

投稿が多くなってくると過去の投稿が埋もれてしまうので、サイト訪問者にいろいろ投稿を見てもらうためにも、ランダムで投稿を表示することは1つの戦略です。

この「ランダムで投稿を表示する」こと事態は難しいことではなく、プラグインを使わずとも簡単に実装できます。

この記事では条件に合う投稿を取得し、ランダムで表示させる方法を記述しました。

この記事に記載されているコードは当サイトで使用したものです。
コードをコピーしても正常に動作しない場合は、自分のサイト用にコードに書き換えてください。

目次

投稿をランダムで表示させる

まず下記コードが投稿をランダムで表示させるときに雛形となるコードになります。

<?php
$args = array(
	'post_type' => 'post',  // 投稿タイプ
	'post_status' => 'publish',  // 公開しているもの
	'orderby' => 'rand',  // ランダム順
	'posts_per_page' => 5,  // 5件取得
);
$random_posts = new WP_Query($args);
if ($random_posts->have_posts()) :
	while ($random_posts->have_posts()) : $random_posts->the_post();
?>

	<!-- ここにループ内の記述 -->

<?php endwhile;
endif;
wp_reset_query(); ?>

今回は例として下の画像の様に、カテゴリーが WordPress のものを1件だけランダムで表示させてみました。

ランダムで1件表示

そのコードが以下のようになります。

<?php
$args = array(
	'post_type' => 'post',  //投稿タイプ
	'category_name' => 'wordpress',  // カテゴリーがWordPressのもの
	'post_status' => 'publish',  // 公開しているもの
	'orderby' => 'rand',  // ランダム順
	'posts_per_page' => 1,  // 1件取得
);
$random_posts = new WP_Query($args);
if ($random_posts->have_posts()) :
	while ($random_posts->have_posts()) : $random_posts->the_post();
?>
		<div class="random-post">
			<a href="<?php the_permalink(); ?>" class="random-post-img">
				<?php if (has_post_thumbnail()) : ?>
					<?php the_post_thumbnail('large'); ?>
				<?php else : ?>
					<img src="<?php echo get_template_directory_uri() ?>/images/no-image.png" alt="no-image">
				<?php endif; ?>
			</a>
			<h5>
				<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
			</h5>
		</div>
<?php endwhile;
endif; ?>
<?php wp_reset_query(); ?>

WP_Query()で指定するパラメータを変えることで、取得する記事を条件指定することできます。

WP_Query()で取れるパラメータは↓コチラを参考にしてください。

WP_Queryで投稿データを取得して表示をカスタマイズ【随時更新】

目次