ページネーション
2020.03.21
2020.03.21
TOPICS
翻訳元記事はこちらです。
WordPressで作成したサイトはたくさんの内容を作成することができます。一回のリクエストであなたが取得したいと思うよりもはるかに多く。
APIのエンドポイントは、1回のリクエストで取得できるアイテムの数をデフォルトで制限しています。同樣に、WordPressのサイトもアーカイブページでは、1ページにつき10投稿にデフォルトで制限しています。
ページネーションのパラメーター
複数のリソースを持つAPIのレスポンスは、レスポンスデータを通じてページングをコントロールするために、いくつか共通のクエリーパラメーターをサポートしています。
?page=
結果として返すページ番号を指定します。
- 例えば、
/wp/v2/posts?page=2
であれば、2ページ目の投稿を返します。 /wp/v2/posts
、/wp/v2/posts?page=2
などで取得することによって、APIを通じて、すべてのアクセスできる投稿を一度に取得することができます。
?per_page=
1回のリクエストで返すレコードの数を指定します。数値で1〜100までを指定できます。
- 例えば、
/wp/v2/posts?per_page=1
であれば、1つめの投稿だけを返します。
?offset=
投稿を取得したい任意のオフセットを指定できます。
- 例えば、
/wp/v2/posts?offset=6
であれば、1ページあたりの件数はデフォルトの値を使用しますが、6番目の投稿から取得します。 ?per_page=5&page=4
と?per_page=5&offset=15
は同じ投稿が取得できます。
大きなクエリーは、サイトのパフォーマンスに影響を与えるため、per_pageパラメーターの値は100レコードに制限されています。
もし、100レコード以上を取得したい場合は、例えば、クライアントサイドですべてのカテゴリーをリストアップして、複数のAPIのリクエストを作成して、結果を合わせるといった方法もあります。
何ページ利用できるか決定するために、APIはすべてのページネーションのレスポンスに2つのヘッダーを返します。
- X-WP-Total:レコードの合計数
- X-WP-TotalPages:すべての利用できるレコードの合計ページ数
これらのヘッダーの値を見ることによって、APIを使ってあとどれだけのデータを取得できるか決定できます。
結果の並び替え
上記のページネーションのクエリーパラメーターに加えて、結果の順序を制御するためのパラメーターもいくつかあります。
?order=
結果を昇順・降順のどちらで返すか制御します。
- 有効な値は、
?order=asc
と?order=desc
になります。 - デフォルトは、降順です。
?orderby=
データをどの順でソートするか制御します。
- orderbyで使用できる値は、リソースによって変化します。例えば、
/wp/v2/posts
であれば、有効な値は、 “date,” “relevance,” “id,” “include,” “title,” ,“slug”になります。 - 他のコレクションがサポートする値については、リファレンスを参照してください。
- 日付のデータを持つコレクションは、デフォルトでdate順でソートされます。