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_rest
もtrue
にしてみてください。