😀
WordPressのAPIで記事数を取得する方法
WordPressをヘッドレスCMSとして利用する場合などに、APIを叩いて記事を取得することがあります。ちなみに、次のようなアドレスで記事一覧を取得できます。
https://example.com/wp-json/wp/v2/posts
この時、取得できる記事の内容は最大で100件までですが、ページネーションを実装するなどで全体で何件あるのか知りたい場合があります。その場合、「ヘッダー」を見ると分かります。次のように、X-WP-Total
というキーで記録されています。
ただし、JSON形式にもなっておらず「:」で区切られた文字列として格納されているので、処理をして取り出さなければなりません。
PHPでの取り出し方法
例えば、PHPで取り出す場合は次のような感じのプログラムで取り出せました。
foreach ($result['headers'] as $header) {
if (strpos($header, 'X-WP-TotalPages: ') !== false) {
$json['header']['total'] = str_replace('X-WP-TotalPages: ', '', $header);
}
}
ヘッダーの内容を1つずつ取り出して、X-WP-TotalPages
というキーがあったら、これを取り出してキー部分を削除して値を取り出します。
なかなか手間がかかりますが、これでページネーションなどが実装できました。
Discussion