WordPressでブログや企業サイトを作っていると、例えば「記事を10件出力する」ようなコトを頻繁にやる訳ですが、query_posts()やget_posts()を使うことで「投稿記事を○件出力する」という処理が可能になります。
今回はそれぞれのテンプートタグを使って記事を「ランダム」で出力する方法を紹介します。
query_posts()で記事をランダムで出力する
例えば「投稿記事を10件ランダムで出力する」場合はこんな感じです。
1 2 3 4 |
<?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; ?> |
上記例では、リンク付きでタイトルだけを出力していますが、
1 2 3 4 5 |
<?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にすると、記事をランダムで出力できるようになります。
参考ページ
http://wpdocs.sourceforge.jp/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%82%BF%E3%82%B0/query_posts
get_posts() で記事をランダムで出力する
今度はget_posts()を使う方法です。get_posts()はquery_posts()と違ってグローバル変数には影響を与えないなど、ちょっと小難しい違いがありますが、メインループ以外(サイドバーやフッターとか)で記事を○件出力するなんて場合に使ったりします。
query_posts()のサンプル同様「投稿記事を10件ランダムで出力する」方法ですが、こんな感じのソースになります。
1 2 3 4 5 6 |
<?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’にすることにより記事をランダムで出力できるようになります。
参考ページ
http://wpdocs.sourceforge.jp/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%82%BF%E3%82%B0/get_post
コメント