- ご意見募集中: フォーラムで解決した FAQ や tips を Codex にまとめませんか?
- 注 WordPress 2.9 でサーバ要件 MySQL 4.1.2 以上に。/ドキュメントを更新して WordPress にご協力ください。
- 赤色のリンクは、まだ日本語Codex に存在しないページ・画像です。英語版と併せてご覧ください。(詳細)
- この Wiki はいつでも誰でも編集できます。ログインアカウントの取得からどうぞ :)
テンプレートタグ/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を指定。負の数(-3 など)に指定した場合、その投稿者を除外。
- author_name (文字列)- 投稿者のニックネームを指定(日本語も可)。
投稿・固定ページ引数
指定したIDや名前の投稿・固定ページを取得する。
- p (整数)- 投稿ID。
- name (文字列)- 投稿スラッグ。
- page_id (整数)- 固定ページID。
- pagename (文字列)- 固定ページスラッグ。
- posts_per_page (整数)- 1ページに表示する投稿数。-1 の場合すべてを表示。
- showposts (整数)- 出力する投稿の数。posts_per_page の導入により非推奨になった。
- post__in(配列)-
array(5,12,2,14,7)のように含める投稿の ID を配列で指定。 - post__not_in(配列)-
array(6,2,8)のように含めない投稿の ID を配列で指定。 - post_type - page(固定ページ)、post(投稿)、attachment(添付ファイル)、revision(変更履歴)のいずれか。
- post_status - publish(公開済み)、pending(レビュー待ち)、draft(下書き)、future(スケジュール済み)、private(非公開)、trash(ゴミ箱入り)、inherit(get_children/en 参照)のいずれか。trash の値はバージョン 2.9 以降のみ。
- post_parent (整数)- 取得したい固定ページの親ページ ID。
先頭固定投稿引数
投稿の先頭固定表示はバージョン 2.7 から導入。
- array('post__in'=>get_option('sticky_posts')) - すべての先頭固定投稿を配列として返す。
- caller_get_posts=1 - 返される配列内で、先頭固定投稿を普通の順序で含める(先頭に固定しない)。
日時引数
それぞれ、その日時の間に投稿された投稿を取得する。マイナスの値は使えない。
- hour (整数)- 0〜23
- minute (整数)- 0〜60
- second (整数)- 0〜60
- day (整数)- 1〜31
- monthnum (整数)- 1〜12
- year (整数)- 例: 2009
- w (整数)- 0〜53 で年間のうちどの週かを選ぶ。MySQL WEEK command Mode=1 を使っている。
ページング引数
- paged (整数)- インデックスや月別・カテゴリー別アーカイブページが複数ページにわたる場合の、表示するページ数を指定。
- posts_per_page (整数)- 1ページに出力する投稿数。-1の場合すべての投稿を出力。
- order (ASC/DESC)- 取得したページの並び順。デフォルト値は「DESC」。
オフセット引数
- offset (整数)- 取得投稿の先頭からスキップする投稿数を指定。
並び替え引数
- orderby
- author
- date
- category - 使えない?
- title
- modified
- menu_order
- parent
- ID
- rand - ランダム
- meta_value - カスタムフィールド引数に meta_key=XXX が必須
- none - 順番指定なし(バージョン 2.8 以降のみ)
- comment_count(バージョン 2.9 以降のみ)
- meta_key=
- meta_value=
- meta_compare= - meta_value= をテストする演算子。デフォルトは '=' で, '!='、'>'、'>='、'<'、'<=' も使える。
コード記述例
- 記述例1:
2008年5月に投稿された、カテゴリー ID 1 と 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:
カテゴリー ID 2 と 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>

