Wordpress の REST API で ACF のサブフィールドを使ってクエリする

サイドプロジェクトで Wordpress を Headless CMS として使っていて、そのときに ACF (Advanced Custom Field) で定義したフィールドを REST API のクエリで利用できなかった。それをどうやって解決したかという話。

TL;DR

ACF Better Search プラグインをインストールして search クエリを使う。対象のサブフィールドが "監修者" で "田中太郎" でクエリしたい場合、"監修者" を ACF Better Search の検索対象にして /wp-json/wp/v2/posts?search=田中太郎 というクエリを投げる。

ACF: Better Search
このプラグインはデフォルトの WordPress検索エンジンにAdvanced Custom Fields プラグインの選択されたフィールドからのコンテンツで検索する機能を追加します。

背景

Wordpress はバージョン 4.7 から REST API をデフォルトで提供していて、何もしなくてもGET /wp-json/wp/v2/posts というパスで投稿をJSON 形式で取得できる。それをつかって Wordpress を Headless CMS として用いることができ、Next.js でブログのフロントを作って記事は Wordpress で入稿して管理するというようなことができる。

REST API Handbook | Developer.WordPress.org
The WordPress REST API provides an interface for applications to interact with your WordPress site by sending and receiving data as JSON…

で、Wordpress の投稿にはさまざまなメタデータがつけられるようになっていて、Advanced Custom Field (ACF) もその一種。ACF はかなりメジャーなプラグインのようでみんなよく使っている。

この ACF で付与したメタデータで投稿をフィルタして一覧を取得したいと思ったのだけどデフォルトの REST API では ACF のメタデータはクエリに使えない。ACF も一部は REST API に対応していて category や custom-taxonomy などのトップレベルのものはクエリに使えるが、投稿に付けているメタデータ(=サブフィールド)は対象にならない。Stack Overflow にもそのように書かれていた。

How to query the Wordpress API by ACF properties?
I’m trying to query the Worpress API based on ACF properties. If I don’t include a query, I get this output: [{“id”:215,“date”:“2018-08-05T09:21:37”,“date_gmt”:“2018-08-5T08:21:37”,“guid”:{“rende…

自分で Wordpress に新しい REST API エンドポイントを組み込めばよさそうなんだけどめんどくさいし PHP は慣れてないのであまり書きたくない。1時間ほど Google をさまよっていたら ACF Better Seach というプラグインを見つけた。

ACF: Better Search
このプラグインはデフォルトの WordPress検索エンジンにAdvanced Custom Fields プラグインの選択されたフィールドからのコンテンツで検索する機能を追加します。

これは Wordpress にある「検索機能」の検索対象に ACF のサブフィールドを加えてくれるというもの。Wordpress の REST API にもこの「検索機能」に対応する search というクエリがあり、これをインストールすれば対象に ACF のサブフィールドが加わる。

さらに、検索対象にするサブフィールドをしぼるオプションもある。

Settings on 'ACF: Better Search'

そして、ACF 側で検索対象にするサブフィールドを選ぶことができる。

Settings on 'Edit Field Group (ACF Plugin)'

これらを組み合わせることでめでたく ACF サブフィールドによるクエリ(=フィルタ)が実現できた。

もちろん、対象にしたいサブフィールドが複数、それらで同じ値がある場合にはちょっと工夫が必要になる。ただ、ACF サブフィールドは取得したデータに入っているし、REST API で取得後にアプリケーションレベルでさらにフィルタで十分実用に足りると思う。すくなくとも全件取得して自分でフィルタするよりはかなりマシだろう。

余談

なんか Wordpress とか ACF っていろいろトラブル抱えてるのね。これを調べながら初めて知った。Redis とか Elastic もこういうのあるよな~。

WordPressがWP Engine保有の超有名プラグイン「Advanced Custom Fields」を勝手に「フォーク」、開発元はプラグインが「同意なしに持ち去られた」と主張
WordPressの創始者であるマット・マレンウェッグ氏が、WordPress特化のホスティングサービスである「WP Engine」を痛烈に批判し、WP Engineからのアクセスをブロックしています。この問題に続き、WordPressのマレンウェッグ氏が、WP Engine保有の超有名プラグイン「Advanced Custom Fields(ACF)」をフォークしたと発表しました。

Read more

2025年の秋・冬

いつのまにか11月になっていた。今年もあと一月しかない。読んだ本を書いていく。 『すごい物理学講義』 Amazon.co.jp: すごい物理学講義 : カルロ・ロヴェッリ, 竹内 薫, 栗原 俊秀: 本Amazon.co.jp: すごい物理学講義 : カルロ・ロヴェッリ, 竹内 薫, 栗原 俊秀: 本Amazonのストアでお買い物 ›フォロー 前の記事で少しふれた最新の理論物理学の本。ちゃんと最後まで読んだ。 著者はループ量子重力理論の研究者。本の内容は、古典力学、電磁気学、相対性理論、量子力学を経て量子重力理論に至るまでの解説。最初の章では古代ギリシアの原子論についても触れ、「最新の理論物理学的の視点で見ると、その時代の世界の捉え方はいい線いってた」みたいな話も。電磁気学、相対性理論、量子力学、それぞれについての解説本は軽く読んだことはあるけど(Newton とかね)、理論が発展してきた流れを知ることができてよかった。 この本の中でキャッチーなのは「第7章: 時間は実は存在しない」のところで、ループ量子重力理論では時間を扱うことなく理論を構築することができる、

2025の夏

月に一本はブログを書きたいから最近のできごとを書いておく。まとまりはないが書かないよりはよい。本当は8月中に投稿したかったけど、9月になってしまった。 『因果推論の科学 - なぜ?の問いにどう答えるか』 因果推論の科学 「なぜ?」の問いにどう答えるか | ジューディア・パール, ダナ・マッケンジー, 松尾 豊, 夏目 大 |本 | 通販 | AmazonAmazonでジューディア・パール, ダナ・マッケンジー, 松尾 豊, 夏目 大の因果推論の科学 「なぜ?」の問いにどう答えるか。アマゾンならポイント還元本が多数。ジューディア・パール, ダナ・マッケンジー, 松尾 豊, 夏目 大作品ほか、お急ぎ便対象商品は当日お届けも可能。また因果推論の科学 「なぜ?」の問いにどう答えるかもアマゾン配送商品なら通常配送無料。Amazonのストアでお買い物 ›フォロー 夏前から読んでた本。 因果推論という新しい統計的手法を解説した本。この分野の潮流として、「ドナルド・

『コンピュータシステムの理論と実装』を始めた

『コンピュータシステムの理論と実装 - モダンなコンピュータの作り方』を始めた。 コンピュータシステムの理論と実装コンピュータを理解するための最善の方法はゼロからコンピュータを作ることです。コンピュータの構成要素は、ハードウェア、ソフトウェア、コンパイラ、OSに大別できます。本書では、これらコンピュータの構成要素をひとつずつ組み立てます。具体的には、NANDという電子素子からスタートし、論理ゲート、加算器、CPUを設計します。そして、オペレーティングシステム、コンパイラ、バーチャルマシンなどを実装しコンピュータを完成させて、最後にその上でアプリケーション(テトリスなど)を動作させます。実行環境はJava(Mac、Windows、Linuxで動作)。 ● 本書のサポートサイト ● 本書で使用するツール「Nand2tetris Software Suite」 ● 「Nand2tetris Software Suite」のチュートリアルO'Reilly logoNoam Nisan、Shimon Schocken 著、斎藤 康毅 訳 本書では、これらコンピュータの構成要素をひとつずつ組み

『1984年』ジョージ・オーウェル著

ジョージ・オーウェルの『1984年』を読みました。 一九八四年 (ハヤカワepi文庫) | ジョージ・オーウェル, 高橋 和久, 高橋和久 | 英米の小説・文芸 | Kindleストア | AmazonAmazonでジョージ・オーウェル, 高橋 和久, 高橋和久の一九八四年 (ハヤカワepi文庫)。アマゾンならポイント還元本が多数。一度購入いただいた電子書籍は、KindleおよびFire端末、スマートフォンやタブレットなど、様々な端末でもお楽しみいただけます。Amazonフォロー 特に紹介するまでもない有名な本だからあらすじとかそういうのは書かなくていいかな。海外では『読んだことないけど読んだふりして語る本』の第一位らしい。だから、意外とみんな実際に読んだことはないのかもしれない。それでも、“BIG BROTHER IS WATCHING YOU” とか、“WAR IS PEACE” はよくオマージュされてるし、有名なのはたぶん間違いない。 大学生活の終わりのころ、ハヤカワから出てる旧訳を読んで感銘(?)を受けたけど記憶も薄れてきて、新訳もたくさん出てたからもう一度手に取った。訳