query_posts タグは、Wordpressループによって表示される投稿の表示方法を指定することができます。ここでは、query_posts タグの基本的な使い方についてご紹介します。
query_posts タグとは
query_posts タグとは、Wordpressループによって表示される投稿の表示方法を指定するときに使います。
WordPressループとは
一般的なブログでは、トップページにいくつかの投稿記事が最新順で表示されますよね?こうした繰り返しの処理を行うための記述のことを、「ループ」といいます。
ループの基本構造は、次のとおりです。
<?php if (have_posts()) : ?>
// 投稿一覧を表示する前の処理内容
<?php while (have_posts()) : the_post(); ?>
// 各投稿を表示する処理内容
<?php endwhile; ?>
// 投稿一覧を表示した後の処理内容
<?php else : ?>
// 投稿が無いときの処理内容
<?php endif; ?>
WordPressループの基本的な内容については、下記ページでご紹介しています。
さて、Wordpressのテーマでは、上記のようなループをテンプレートファイルの中に記述することで投稿の一覧を表示させているわけですが、この「表示順序を変更したい」とか「特定のカテゴリーに属する投稿だけを表示させたい」ということもあるでしょう。このようなカスタマイズを実現するのが、query_posts タグです。
query_posts タグの基本的な使い方
query_posts タグは、ループが始まる前に記述する必要があります。また、ループが終わったあとには、クエリをリセットするために「<?php wp_reset_query(); ?>」と書きます。基本的には、下記のように記述します。
<?php query_posts( 引数 ); ?>
//ループ開始
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<?php endwhile; endif; ?>
//ループ終了
<?php wp_reset_query(); ?>
赤い文字で書いた「引数」には、先ほど例に挙げた「表示順序を変更したい」とか「特定のカテゴリーに属する投稿だけを表示させたい」などの指定したい内容を記述します。
表示順序を変更するには「order」あるいは「orderby」という引数を、特定のカテゴリーに属する投稿だけを表示するには「cat」あるいは「category_name」という引数をそれぞれ指定します。
例えば、スラッグが「wordpress」というカテゴリーに属する投稿だけを表示するには、下記のように記述します。
<?php query_posts( ‘category_name=wordpress’ ); ?>
query_posts タグの中に指定できる引数は他にもたくさんあります。詳細は、下記ページで確認できます。