WP REST API 独自エンドポイントとACF

情報を追記している場合はありますが、古い情報を訂正はしていませんので、公開年月日を参照してください。プラグイン・タグ、いずれもワードプレス・PHPのバージョン等によって動作しない場合もあります。

WP REST API の表示側、/wp-json/wp/v2/posts のようにする場合、Advanced Custom Fields のフィールドはitem.acf.fieldname のように取得できる。

jQuery(function() {
	jQuery.getJSON("~/wp-json/wp/v2/posts?per_page=10&categories=46&acf_format=standard", function(result) {
              jQuery.each(result, function(i, item) {

テーマ関数で独自のエンドポイントとコールバック関数を設定して、/wp-json/custom/v2/dokuji のようにする場合、’repeaters’ => get_field(‘repeater’), のように設定すると、
スクリプトでの表示では repeaters[0][‘subfieldname’] のように「何番目の何」を取得できる。*カウントはゼロから
PHPだとforeach ($data[“repeaters”] as $repeater) のように全体をループできる。
*独自エンドポイント無しでPHPで書く場合は$repeaters = $data[“acf”][“repeater”]; のように取得してforeeach

*REST API で表示する内容を後で変更する可能性がある場合は独自エンドポイントを設定しておくほうが良いように思うが、表示するのが更新情報で数件のみの場合は、やはり、acf/save_post で必要な情報を別フィールドに保存して表示するほうが楽な気がする。

その他のAdvanced Custom Fields に関する記事一覧

Advanced Custom Fields に関する記事一覧ページへ