2つのURLの違い
「IDだけ返ってくる」か「中身(画像URLなど)まで全部セットで返ってくる」かの違いです。
- パラメータなし:https://test.com/wp-json/wp/v2/posts/
- パラメータあり:https://test.com/wp-json/wp/v2/posts/?_embed
1. …/posts/ (パラメータなし)
「軽量版」 です。関連するデータはすべて ID番号 だけで返ってきます。
- アイキャッチ画像: featured_media: 12 (IDが12番ということしか分からない)
- カテゴリー: categories: [3, 5] (IDが3番と5番ということしか分からない)
これだけだと、画像のURLやカテゴリ名を表示するために、IDを使ってまた別のAPIを叩きにいかなければならず、非常に面倒です。
2. …/posts/?_embed (パラメータあり)
「全部入り版」 です。IDで紐付いているデータを、_embedded という箱の中に「埋め込んで(embed)」 まとめて返してくれます。
- アイキャッチ画像: _embedded の中に 実際の画像URL が入ってくる
- カテゴリー: _embedded の中に 実際のカテゴリ名 が入ってくる
図解イメージ
// パラメータなし (.../posts/)
{
"id": 1,
"title": "こんにちは",
"featured_media": 123, // <--- IDしかわからない!画像が表示できない!
}
// パラメータあり (.../posts/?_embed)
{
"id": 1,
"title": "こんにちは",
"featured_media": 123,
"_embedded": { // <--- ここに詳細データが追加される!
"wp:featuredmedia": [
{
"id": 123,
"source_url": "https://test.com/image.jpg" // <--- URLがわかる!
}
]
}
}
ニュース一覧ページのように、「記事と一緒に画像やカテゴリ名も表示したい」という場合は、1回のリクエストで全部取れる ?_embed を使うのが定石です。
