こんにちは、ももこです。Wordpressで企業サイトを作る際に必ずと言って良いほどお世話になるループ処理について備忘録がてらまとめてみました。今回は2つのテンプレートタグを使うループについてです。
query_postsタグを使ってメインループを変更する
<?php
query_posts('cat=-1&posts_per_page=5&paged='.$paged);
if ( have_posts() ) :
while ( have_posts() ) : the_post(); ?>
//条件に含まれる場合の指定
<?php endwhile; else: ?>
//条件に含まれない場合の指定
<?php endif; ?>
//リセット
wp_reset_query();
?>
query_postsは既にあるループから特定のカテゴリーのみを除いたり、投稿順序を変えたりする際に使います。なお、1ページの中で複数回の使用は出来ません。上記の場合は「カテゴリーIDが1の投稿を除き5件分表示させる」という条件を指定しています。
※wp-pagenaviなどページネーション機能を動かす場合にはquery_postsを使う必要がありますが、その際はpagedパラメータを設定しないと2ページ以降が表示されないので注意が必要です。
get_postsタグを使ってループを作る
<?php
global $post;
$myposts = get_posts('numberposts=5&category=1');
foreach( $myposts as $post ) : setup_postdata($post); ?>
//条件に合う投稿を書き出す指定
<?php endforeach; ?>
get_postsは新たにループを作る際に使うテンプレートタグで、1ページの中で複数使うことが可能です。foreach文で取得した複数の記事を1件ずつ処理していきます。上記の場合は「カテゴリーIDが1の投稿を5件分取得する」という条件を指定しています。
どちらも頻繁に使用するので、忘れないようにしていきたいと思います!
参考
今回の記事を書くにあたって、こちらのサイトを参考にしました。
query_posts / WORDPRESS Codex
get_posts / WORDPRESS Codex
LIGはWebサイト制作を支援しています。ご興味のある方は事業ぺージをぜひご覧ください。