【BiTT】低価格×高品質
【BiTT】低価格×高品質

必ず役に立つ!WordPressのループに使える2つのテンプレートタグ

モモコ

こんにちは、ももこです。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

3 0 0 0