WordPress ACFのカスタムフィールドがREST APIに出ない理由
ACFとカスタムフィールドとは
ACF(Advanced Custom Fields)は、WordPressに「カスタムフィールド」(=標準にはない独自の入力欄)を追加するための定番プラグイン(=機能を追加する拡張ソフト)である。
標準のWordPress投稿には「タイトル」「本文」「カテゴリー」などがあるが、ACFを使うと「価格」「評価(星の数)」「関連リンク」「担当者」のような業務固有のフィールドを自由に追加できる。
フィールドとは、投稿やページに紐づく独自データの入れ物である。ACFの管理画面でフィールドを定義し、投稿編集画面で値を入力する。
WordPressのREST APIとは
REST APIは、投稿データをHTTP経由でJSONとしてやり取りするための、WordPress標準搭載のインターフェースである。
REST(Representational State Transfer)はWeb上でデータをやり取りする際に標準的に使われる規約である。JSON(JavaScript Object Notation)は{ "key": "value" }の形でデータを表現するテキスト形式である。
エンドポイント(=アクセスするURLの窓口)は/wp-json/wp/v2/postsのような形を取り、アクセスすると投稿一覧がJSONで返る。
問題:ACFフィールドがREST APIに出ない
ACFで作成したカスタムフィールドは、デフォルトではREST APIのレスポンスに含まれない。
/wp-json/wp/v2/postsにアクセスすると、標準のtitle・content・excerptなどは返るが、ACFで追加したカスタムフィールドのデータはJSONに現れない。これはACFとREST APIの組み合わせでよくあるつまずきどころである。
理由は、ACFのフィールドがWordPressのpost_meta(=投稿メタデータ)として保存される一方、REST APIは明示的に登録された項目だけを出力する設計になっているためである。
3つの解決策
1. ACFの設定で「REST APIに表示」をオンにする(推奨)
ACF 5.11以降、フィールドグループ(=複数のフィールドを束ねる単位)の設定に「Show in REST API(REST APIに表示)」というオプションが追加された。ACFの管理画面でフィールドグループを編集し、このトグルをオンにするだけでよい。
レスポンスにacfというキーが追加され、その下にフィールドの値がネストされる。これが最もシンプルでACF標準の方法である。
2. PHPでregister_rest_field()を使って明示的に登録する
テーマのfunctions.phpやプラグインに次のようなコードを追加すると、任意のフィールドをREST APIに出力できる。
add_action('rest_api_init', function () {
register_rest_field('post', 'my_price', [
'get_callback' => function ($post) {
return get_field('my_price', $post['id']);
},
'schema' => ['type' => 'number'],
]);
});
register_rest_field()は、任意のフィールドをREST APIのレスポンスに追加するためにWordPressが提供する関数である。細かい制御が必要な場合に使う。
3.「ACF to REST API」プラグインを使う
サードパーティ製プラグイン「ACF to REST API」を導入すると、ACFフィールドが自動的にREST APIへ出力される。旧バージョンのACF(5.11より前)を使っている場合や、手早く試したい場合の選択肢になる。ただし、依存するプラグインが1つ増える点には注意が必要である。
ヘッドレスWordPressとの関係
ヘッドレス構成(Headless WordPress)とは、WordPressをデータ管理(=CMS)専用にし、表示はNext.jsなど別のフロントエンドに任せる構成である。「頭(表示部分)を切り離す」ことからヘッドレスと呼ばれる。
この構成では、WordPressのデータをフロントエンドに渡す手段としてREST API、またはWPGraphQL(=クエリ言語GraphQLでWordPressのデータを取得できるプラグイン)を使う。だからこそ、ACFのカスタムフィールドを多用するほど「REST APIに出ない」問題に必ず直面し、上記3つの解決策のいずれかが必要になる。
まとめ
ACFのカスタムフィールドは仕様上、デフォルトではREST APIに出ない。ACF 5.11以降なら、フィールドグループ設定の「REST APIに表示」(デフォルトはオフ)をオンにするだけでacfキーとして出力される。ヘッドレス構成でACFを使う場合は、フィールドグループ作成時に必ずこの設定を確認する。
関連ノート
- Agentic Commerce — ACP and Visibility into Being 'Bought by AI'
- browser-to-api — a Browserbase skill that turns a site into OpenAPI from a CDP trace
- Safe tenant-scoped writes to a cloud database — connection, authentication and RLS in one go
- Cloudflare Wrangler and Pages Functions — the deployment tool and the Functions bundle
- Introduction to the Digital Architect (00) — the reality of the profession and the big picture of an original textbook series
- The textbook for becoming a digital architect — table of contents (learning roadmap)