2009-11-07

query_posts で指定できるパラメーター

指定できるパラメーターがたくさんあり、細かい指定もできるので、アーカイブの表示などにとても便利に使える query_posts ですが、覚えられないので備忘録としてまとめておきます。

こちら記事は古くなっています。
query_posts については、以下の記事にて解説されているように、別の方法で対処できることがほとんどです。
query_postsを捨てよ、pre_get_postsを使おう【追記あり】【報告あり】 | notnil creation weblog

基本的に WordPress Codex 内の query posts の内容を適当和訳してものです。
間違いがある可能性もあるので、ちゃんと確認したい方は本家を確認してください。
うっかり間違いを見つけてしまったかたは、ぜひコメント欄等で指摘してくださいませ。

カテゴリーから指定する

指定したカテゴリーに属する投稿を表示。

cat
カテゴリー  ID を指定。
複数指定するならカンマで区切る
除外したい場合はカテゴリー ID の前にマイナスを付けると指定できる。
category_name
カテゴリー名を指定(日本語も可)。
category__and
カテゴリー ID の配列。指定した複数のカテゴリーすべてに含まれる投稿のみを取得。
category__in
カテゴリー ID の配列。指定した複数のカテゴリーいずれかに含まれる投稿のみを取得。
category__not_in
カテゴリー ID の配列。指定したカテゴリーのいずれにもに含まれない投稿のみを取得。

配列関連はあんま使わないのでスルー。

タグ引数

指定したタグが付けられた投稿を表示。

tag
タグスラッグを指定。
or 指定するならカンマで区切る
and 指定するならプラスでつなげる
tag__and
タグ ID の配列。指定した複数のタグすべてを含む投稿のみを取得。
tag__in
タグ ID の配列。指定したタグのいずれかを含む投稿のみを取得。
tag_slug__and
タグスラッグの配列。指定した複数のタグすべてを含む投稿のみを取得。
tag_slug__in
タグスラッグの配列。指定したタグのいずれかを含む投稿のみを取得。

配列関連はあんま使わないのでスルー。

投稿者引数

投稿者を指定することで表示する投稿を制限。

author
投稿を表示させたい投稿者の ID を指定。
マイナスを付ければ、その ID の投稿を除外
author_name
投稿を表示させたい投稿者のニックネーム(user_nicename に入ってるもの)を指定(日本語も可)。

投稿・固定ページ引数

p
投稿 ID で指定。
name
投稿スラッグで指定。
page_id
固定ページ ID で指定。
pagename
固定ページスラッグで指定。
posts_per_page
1ページに出力する投稿数。-1の場合すべての投稿を出力。
showposts
出力する投稿の数
post__in
取得する投稿 ID を配列で指定。
post__not_in
除外する投稿 ID を配列で指定。
post_type
投稿のデフォルトは「post」。
その他に、「any」、「attachment」、「page」、「revision」が使用可能。
「any」を指定すると、リビジョン以外の形式のものを取得できる。
post_status
「publish」を指定すると公開済みのものを取得。
以下同様に、「pending」→レビュー待ち、「draft」→下書き、「future」→予約投稿、「private」→非公開、「trash」→ごみ箱(ver. 2.9以降)に分類されたものを取得できる。その他に、「inherit」→継承(添付ファイル、改訂履歴・自動保存のとき)がある(←よくわからん)。
post_parent
指定した ID のページの子ページを取得。

配列関連はあんま使わないのでスルー。

日時引数

時間範囲を指定する際に使用するパラメーター。普通に使う可能性があるのは年月日くらいかな。

hour
時間(0~23を指定可能)
minute
分(0~60を指定可能)
second
秒(0~60を指定可能)
day
日(1~31を指定可能)
monthnum
月(1から12を指定可能)
year
年(2009のように4桁での年指定)
w
週番号(0~53まで指定可能)

ページ引数

paged
インデックスやアーカイブページが複数わたる場合、何ページ目を表示するかを指定。
order
取得したページの並び順。デフォルト値は「DESC」。ASC が小→大、DESC が大→小

オフセット引数

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

並び替え引数

取得した投稿をどの項目について並べるかを指定する。

orderby=author
投稿者で並べる
orderby=date
日付で並べる
orderby=category
カテゴリーで並べる(廃止予定?)
orderby=title
タイトルで並べる
orderby=modified
変更順に並べる
orderby=menu_order
メニュー順に並べる
orderby=parent
親順に並べる
orderby=ID
ID 順に並べる
orderby=rand
ランダムに並べる
orderby=meta_value
meta value の値で並べる。比較するための meta key の値をクエリーの中に入れること
orderby=none
並び変えない(ver. 2.8以降)
orderby=comment_count
コメント数順で並べる(ver. 2.9以降)

カスタムフィールド引数

カスタムフィールドのキー、値に基づいて投稿・ページを検索する。

meta_key=
カスタムフィールドの名前
meta_value=
カスタムフィールドの値
meta_compare=
例: query_posts(‘meta_key=miles&meta_compare=<=&meta_value=22’);
上のように指定すると、比較対照は「miles」というメタキーの値。かつ、その値が22よりも小さい投稿を取得する。
比較演算子のデフォルトは「=」だが、他にも「!=」、「>」、「>=」、「<」、「<=」が使用可能。