WordPress Rest API

WordPress REST APIとは
WordPress REST APIとは、WordPressサイトの外部から、投稿記事やカスタム投稿タイプ、メディアライブラリ、ユーザー情報などのデータを取得したり、操作したりするための仕組み。
WP-CLIやURLを介して、JSON形式でデータのやり取りができる。
この機能は、WordPressをただのCMSではなく、アプリケーションプラットフォームとして活用することを目的に開発された。REST APIを利用すれば、WordPressの管理画面に入ることなく、プログラムからデータの投稿、編集、更新、削除などの操作が可能になる。
REST APIは当初プラグインとして提供されていたが、2016年12月にリリースされたWordPress 4.7から正式に組み込まれた。
しかし、その翌年の2017年には深刻な脆弱性が発覚した。
特定のリクエストを送ることで認証をすり抜け、ウェブサイトを改ざんできてしまう状態だった。
この脆弱性により、世界中で約155万ものサイトが被害に遭ったと報告されている。
幸いこの脆弱性はWordPress 4.7.2で修正されており、現時点では新たな脆弱性の報告はない。
WordPress REST APIの使い方
WP-CLIも使えるが、ここではおいておいて、特定のURLに接続することでJSON形式でデータを取得する方法についてメモ。
アプリケーションパスワードの発行方法
投稿取得やカテゴリー取得などの場合は、特に必要ないが、新規投稿や、編集、更新、削除、メディアのアップロードの場合には認証が必要になるので、予めアプリケーションパスワードを発行しておく必要がある。
Wordpressにログインし、メニューの、
ユーザー → プロフィール

適当な名前を付けて、「新しいアプリケーションパスワードを追加」ボタンをクリック。

24桁のパスワードが発行される。
エンドポイント
Wordpressのパーマリンクの設定によって2通りある。
基本的にはWordpressのURLのあとに以下をつけ足したURL。
slug
id
投稿の取得
最新の10件が取得できる
100件取得1ページ目
件数指定は最大100まで。それ以上はエラーが返る。
カテゴリーを指定して投稿を取得
ID指定で記事を取得
slug指定で記事を取得
カテゴリ一覧取得
これだだけだと、カテゴリーが階層化されている場合にすべてが取得できないので、全てのカテゴリを取得(最大100件まで)とする。
記事のサムネイルを取得する
記事のJSONのfeatured_mediaから画像IDを取得