テンプレートタグ/query posts

出典: WordPress Codex 日本語版

  • 書式: <?php query_posts('arguments'); ?>
  • 説明: ループ内でクエリを変更するために使う。詳しくは、WordPressループについてのページを参照。
  • 位置: ループ内
  • 引数:
    • 整数が指定できる場合は、特定の投稿を除くためにマイナスの値も使える。たとえば query_posts('cat=-3') とした場合、ID3のカテゴリーのみをクエリから除く。
    • 各引数に複数の値を指定する場合、コンマに続けて追加する。
    • 複数の引数を組み合わせる場合は、他のタグと同じく引数の間に&を挿入する。

目次

カテゴリー引数

指定したIDや名前のカテゴリーに分類された投稿を取得する。

  • cat (整数)- カテゴリーIDを指定。
  • category_name (文字列)- カテゴリー名を指定(日本語も可)。
  • category__and(配列)- カテゴリーIDの配列。指定した複数のカテゴリーすべてに含まれる投稿のみを取得。
  • category__in(配列)- カテゴリーIDの配列。指定した複数のカテゴリーいずれかに含まれる投稿のみを取得。
  • category__not_in(配列)- カテゴリーIDの配列。指定したカテゴリーのいずれにもに含まれない投稿のみを取得。

タグ引数

指定したタグがつけられた投稿を取得する。

  • tag (文字列)- タグスラッグを指定。
  • tag__and(配列)- タグIDの配列。指定した複数のタグすべてを含む投稿のみを取得。
  • tag__in(配列)- タグIDの配列。指定したタグのいずれかを含む投稿のみを取得。
  • tag_slug__and(配列)- タグスラッグの配列。指定した複数のタグすべてを含む投稿のみを取得。
  • tag_slug__in(配列)- タグスラッグの配列。指定したタグのいずれかを含む投稿のみを取得。

投稿者引数

指定したIDや名前の投稿者による投稿を取得する。

  • author (整数)- 投稿者のIDを指定。
  • author_name (文字列)- 投稿者のニックネームを指定(日本語も可)。

投稿・固定ページ引数

指定したIDや名前の投稿・固定ページを取得する。

  • p (整数)- 投稿ID。
  • name (文字列)- 投稿スラッグ。
  • page_id (整数)- 固定ページID。
  • pagename (文字列)- 固定ページスラッグ。
  • showposts (整数)- 出力する投稿の数。

日時引数

それぞれ、その日時の間に投稿された投稿を取得する。マイナスの値は無効。

  • hour (整数)
  • minute (整数)
  • second (整数)
  • day (整数)
  • monthnum (整数)
  • year (整数)

ページ引数

  • paged (整数)- インデックスや月別・カテゴリー別アーカイブページが複数ページにわたる場合の、表示するページ数を指定。
  • posts_per_page (整数)- 1ページに出力する投稿数。-1の場合すべての投稿を出力。
  • order (ASC/DESC)- 取得したページの並び順。デフォルト値は「DESC」。

オフセット引数

  • offset (整数)- 取得投稿の先頭からスキップする投稿数を指定。

並び替え引数

  • orderby (author, date, category, title, modified, modified, menu_order, parent, ID, rand)

コード記述例

  • 記述例1:

2008年5月に投稿された、カテゴリーID1と3の投稿タイトルを1ページに5件ずつ表示。

<?php if (have_posts()) :  query_posts('&posts_per_page=5&cat=1,3&monthnum=5&year=2008');  ?>
  <?php while (have_posts()) : the_post(); ?>
    <h2><?php the_title(); ?></h2>
<?php endwhile; endif; ?>
  • 記述例2:

カテゴリーID2と6のいずれにも含まれないすべての投稿のタイトルをリストとして表示。

<?php if (have_posts()) :  query_posts(array('category__not_in' => array(2,6))); ?>
<ul>
 <?php while (have_posts()) : the_post(); ?>
    <li><?php the_title(); ?></li>
<?php endwhile; endif; ?>
</ul>
他の言語