WordPressのWP_Query
は、WordPressでカスタムクエリ(投稿の絞り込み・取得)を行うための非常に強力なクラスです。
$args
(引数)を指定することで、投稿タイプ・カテゴリ・タグ・カスタムフィールドなど、さまざまな条件で投稿を取得できます。 WP_Query
に渡せる $args
(引数)の主な要素を一覧で紹介します。以下は代表的なクエリパラメータで、投稿の取得条件を詳細に指定できます。
🔷 基本パラメータ
パラメータ名 |
説明 |
例 |
post_type |
投稿タイプ |
'post' , 'page' , カスタム投稿タイプ |
posts_per_page |
取得件数 |
4 , -1 (すべて) |
offset |
何件目から取得するか |
10 (11件目以降) |
paged |
ページ番号(ページネーション用) |
2 (2ページ目) |
post_status |
投稿ステータス |
'publish' , 'draft' , 'private' |
orderby |
並び順の基準 |
'date' , 'title' , 'modified' , 'rand' , 'meta_value' |
order |
昇順 or 降順 |
'ASC' , 'DESC' |
🔷 投稿ID・スラッグ指定
パラメータ名 |
説明 |
例 |
p |
特定の投稿ID |
23 |
name |
投稿スラッグ |
'my-post' |
post__in |
特定の投稿IDの配列(絞り込み) |
[1, 5, 9] |
post__not_in |
除外する投稿ID |
[7, 8] |
🔷 カテゴリ・タクソノミー関連
パラメータ名 |
説明 |
例 |
cat |
カテゴリID |
3 |
category_name |
カテゴリスラッグ |
'news' |
category__in |
複数カテゴリIDを含む |
[3, 5] |
category__not_in |
除外カテゴリID |
[1, 6] |
tag |
タグスラッグ |
'featured' |
tag__in |
タグIDの配列 |
[2, 3] |
tax_query |
カスタムタクソノミークエリ |
array([...]) (下記参照) |
🔷 カスタムフィールド(meta)関連
パラメータ名 |
説明 |
例 |
meta_key |
メタキー名 |
'price' |
meta_value |
メタバリュー |
'100' |
meta_compare |
比較演算子 |
'=' , '!=', '>', '<', 'LIKE' |
meta_query |
複数条件をまとめる |
array([...]) (複雑な検索) |
🔷 日付関連
パラメータ名 |
説明 |
例 |
year |
年 |
2025 |
monthnum |
月 |
6 |
day |
日 |
20 |
date_query |
複雑な日付条件 |
array([...]) |
🔷 その他
パラメータ名 |
説明 |
例 |
s |
キーワード検索 |
'WordPress' |
author |
著者ID |
1 |
author__in |
著者IDの配列 |
[1, 2] |
author_name |
著者スラッグ |
'admin' |
ignore_sticky_posts |
固定投稿を無視 |
true |
post_parent |
親投稿ID |
25 (階層ページ等) |
🔶 tax_query
の例(カスタムタクソノミー)
'tax_query' => array(
array(
'taxonomy' => 'genre',
'field' => 'slug',
'terms' => array( 'drama', 'comedy' ),
'operator' => 'IN',
),
),
✅ あなたの例の解説
$args = array(
'posts_per_page' => 4, // 最新4件
'post_type' => 'post', // 通常投稿
'orderby' => 'date', // 投稿日時順
'order' => 'DESC', // 新しい順
'category__in' => get_term_children($parent_id, 'category'), // 特定親カテゴリの子カテゴリを対象
);