WP REST APIを使って記事データを取得してみた

wp_rest_api

WordPressにはHTTPリスエストを送信するとブログの情報が取得できるRESTAPIなるものがあるらしいのでためしてみる。
ブログのURLの後ろにいろいろパラメータを付ければいいらしい。
情報はJSON形式で返ってくるみたい。これで外部からブログの情報がとってこれるようになる。

記事内にあるURLをためしてみる場合は {{ブログのURL}} のところを自分のブログのURLに置き換えてください。

本日の実験内容(目次)
(スポンサーリンク)

実験環境(バージョン情報とか)

WordPress: 6.0
PHP: 7.4.28

Firefox: 100.0.2
Firefoxだと返ってきたJSONがいい感じに階層化されて表示されたので採用。

投稿記事データの取得

ブログURLの後ろに「/wp-json/wp/v2/posts」を付けると投稿データが取得できる。
取得できるデータの項目についてはPosts API Referenceにあるスキーマを見てください。

最新の投稿を取得

こんな感じのURLを投げると最新の投稿が10件取得できる。

https://{{ブログのURL}}/wp-json/wp/v2/posts

取得する件数は「_per_page」で指定することができる。1から100までの指定ができる。
15件取得するときはこんな感じ、

https://{{ブログのURL}}/wp-json/wp/v2/posts?per_page=15

10件目以降の投稿を取得する

ページネーションパラメーター「page」を付ける。

https://{{ブログのURL}}/wp-json/wp/v2/posts?page=2

投稿を並び替えて取得する

デフォルトの順序はdateの降順で投稿が取得される。
order」で昇順(order=asc)・降順(order=desc)の指定、
orderby」で並び替えるキー項目を指定できる

dateの昇順で記事を取得

https://{{ブログのURL}}/wp-json/wp/v2/posts?order=asc

idの降順で記事を取得

https://{{ブログのURL}}/wp-json/wp/v2/posts?order=desc&orderby=id

キーワードを指定して記事を検索して取得

「search」に検索したいキーワードを指定する。

https://{{ブログのURL}}/wp-json/wp/v2/posts?search=キーワード

指定した日付以降・より前の投稿を取得

after」は指定した日付以降に投稿した記事、
before」は指定した日付以前に投稿した記事が取得できる。
日付はISO8601形式で指定するらしい。

https://{{ブログのURL}}/wp-json/wp/v2/posts?after=2022-06-01T00:00:00
https://{{ブログのURL}}/wp-json/wp/v2/posts?before=2022-06-01T00:00:00

パラメータ「_fields」を指定して必要な項目だけ取得

グローバルパラメーター「 _fields 」に欲しい項目をカンマ区切りで渡す。

https://{{ブログのURL}}/wp-json/wp/v2/posts?_fields=id,title

項目については、Posts API Referenceのスキーマにあるのを渡せるはず。

グローバルパラメータ「_fields」は後述の固定ページ、ユーザーの取得の際も指定ができるみたい。
だからグローバルなんだね。

記事IDを指定して投稿を取得

後ろにidを指定する。ためすときは {{id}} を実際のidに置き換えてください。

https://{{ブログのURL}}/wp-json/wp/v2/posts/{{id}}

アイキャッチの画像URLも一緒に取得

_embed」を付けるとアイキャッチ画像の情報も取得できる。

https://{{ブログのURL}}/wp-json/wp/v2/posts?_embed

「_embedded」の「wp:featuredmedia」の「source_url」に画像URLがあるみたい。

(スポンサーリンク)

固定ページデータの取得

ブログURLの後ろに「/wp-json/wp/v2/pages」を付けると固定ページのデータが取得できるみたい。
取得できるデータの項目は、Pages API Referenceのスキーマを見てください。

https://{{ブログのURL}}/wp-json/wp/v2/pages

固定ページも後ろにidを指定して取得できるみたい。{{id}} を実際のidに置き換えてください。

https://{{ブログのURL}}/wp-json/wp/v2/pages/{{id}}

ユーザー情報を取得

WordPressのユーザー情報も取得できるらしい。
取得できるデータの項目はUsers API Referenceのスキーマを見てください。

ユーザーの一覧を取得

https://{{ブログのURL}}/wp-json/wp/v2/users

参考URL

まとめ

取得だけならパスワードとかいらないのですぐためせるので楽ちん。

これを使って他のサイトの最新記事とか定期的にチェックできるようになりそう。
Pyhonで記事を取得してみた回はこちら、

wp_rest_api

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

本日の実験内容(目次)