
query_posts()を利用して記事表示方法の幅を広げる
query_posts()はWordPressが投稿を表示するのに使用しているメインクエリーを置き換える手段。記述箇所は、記事表示のループの直前に記述する。
これはメインクエリーを一旦横に置いておき、新しいクエリーで上書きする。
query_postsを使用する際は、クエリーの改変を戻すために、wp_reset_query()を呼び出し、オリジナルのメインクエリーを復活させる
※注意点
query_postsを使うことによって、ページ上のメインクエリーが置き換えられ、ページの読み込み速度に影響を与える。
最悪の場合、倍かそれ以上の処理が発生する。
簡単に使える代わりに、この関数は混乱と問題を引き起こす傾向がある。
テンプレートタグ/query posts - WordPress Codex 日本語版

使用例(1)最新記事を10件から5件表示に変更する場合
たとえば、ホームで、通常最新の10件の投稿が表示されている。もし5件だけ表示したいのであれば、query_posts()を使ってこのように書くことができる。
使用例(1)サンプルコード
<?php // クエリ query_posts( 'posts_per_page=5' ); // 記事表示のループ if ( have_posts() ) : while ( have_posts() ) : the_post(); ?> <!-- 記事タイトルを表示するテンプレタグ --> <h2><?php the_title(); ?></2> <!-- 記事の投稿日時を出力するテンプレタグ --> 投稿日時:<?php the_time(); ?> <?php endwhile; else: endif; // クエリをリセット wp_reset_query(); ?>
使用例(2)指定カテゴリーのみ5件表示に変更する場合
query_posts()の引数の部分にパラメータを追加する事で、指定したカテゴリーの記事内容のみを出力できる。パラーメータを連結する記号は「&」
たとえば、表示したい指定カテゴリー番号が「10」の場合、cat=10を連結させる。
※カテゴリー番号の確認方法

使用例(2)サンプルコード
<?php // クエリ query_posts( 'posts_per_page=5&cat=10' ); // 記事表示のループ if ( have_posts() ) : while ( have_posts() ) : the_post(); ?> <!-- 記事タイトルを表示するテンプレタグ --> <h2><?php the_title(); ?></2> <!-- 記事の投稿日時を出力するテンプレタグ --> 投稿日時:<?php the_time(); ?> <?php endwhile; else: endif; // クエリをリセット wp_reset_query(); ?>