• RSS

[WP]WordPressで「投稿記事をランダムで○件」表示させる方法

  • このエントリーをはてなブックマークに追加
  • follow us in feedly

WordPressでブログや企業サイトを作っていると、例えば「記事を10件出力する」ようなコトを頻繁にやる訳ですが、query_posts()get_posts() を使うことで「投稿記事を○件出力する」という処理が可能になります。

今回はそれぞれのテンプートタグを使って記事を「ランダム」で出力する方法を紹介します。

query_posts() で記事をランダムで出力する

例えば「投稿記事を10件ランダムで出力する」場合はこんな感じです。
<?php query_posts('showposts=10&orderby=rand');?>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<h2><a href="<?php the_permalink();?>"><?php the_title();?></a></h2>
<?php endwhile; endif; ?>
上記例では、リンク付きでタイトルだけを出力していますが、
<?php query_posts('showposts=10&orderby=rand');?>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<h2><a href="<?php the_permalink();?>"><?php the_title();?></a></h2>
<?php the_content();?>
<?php endwhile; endif; ?>
で投稿本文も合わせて取って来れます。

パラメータですが、showposts で「出力する記事数」を指定できます。今回は10件なので showposts=10 です。

また、orderby=rand にすると、記事をランダムで出力できるようになります。



get_posts() で記事をランダムで出力する

今度は get_posts() を使う方法です。

get_posts()query_posts() と違ってグローバル変数には影響を与えないなど、ちょっと小難しい違いがありますが、メインループ以外(サイドバーやフッターとか)で記事を○件出力するなんて場合に使ったりします。

query_posts() のサンプル同様「投稿記事を10件ランダムで出力する」方法ですが、こんな感じのソースになります。
<?php
$args = array( 'numberposts' => 10, 'orderby' => 'rand' );
$rand_posts = get_posts( $args );
foreach( $rand_posts as $post ) : ?>
<h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
<?php endforeach; ?>

numberposts で「出力する記事数」を指定します。
今回は10件なので 'numberposts' => 10 です。
また、'orderby' => 'rand' にすることにより記事をランダムで出力できるようになります。



  • このエントリーをはてなブックマークに追加
  • follow us in feedly

コメント

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください