WordPress の REST API v2 でターム別の記事を取得する

  • WordPress

WordPress には URL を叩くだけで記事を取得したり、追加したり、削除したりすることのできる便利な API があります。今回はこちらを使用してカスタム投稿タイプの記事をターム別に取得する方法です。

REST API を使用できるようにする

カスタム投稿タイプで REST API を使用可能にするには、register_post_type()時に'show_in_rest' => trueとしなくてはなりません。投稿タイプをプラグインで追加しているなら、この設定がどこかにあるはずです。

(Gutenberg を使用しているならtrueになっていると思います)

URLパラメータ

REST API はアクセスする URL は同じでも GET, POST, PUT, DELETE メソッドによって行われる処理が変わります。今回は記事の取得なので GET メソッドで行います。下記は記事取得に使用する URL です。

<ドメイン>/wp-json/wp/v2/投稿タイプ名?タクソノミー名=タームid

例えば、投稿タイプ「food」の記事の中で、タクソノミー「fruits」に所属するターム「apple( id は 5 )」が設定されているもののみ抽出したいなら、

food?fruits=5

となります。ここまできたら、jQuery の$.getメソッドなどを使用して GET で URL を叩きましょう。ディベロッパーツールで直接叩いても確認できます。

const URL = 'URL';
let data = $.get( URL );

もしうまくいかなければ、タクソノミーを登録するregister_taxonomy()の方のshow_in_resttrueにしてみてください。