Craft CMS のデータをまとめて整理するのに Feed Me をつかってインポート・上書きで綺麗にしたい。そのためになにかいい感じにデータを書き出す方法はないものかなぁと考えてた。
標準のエクスポートはだいぶ良くなったけど、 Feed Me にいれるにはちょっと形式的にいけていなさそうなところがありそうな感じ。
テンプレートでエントリの一覧を出すように普通にかいて JSON 形式にすればいいんだろうけど、それはちょっと(面倒だ)なぁと思いつつ、、、
Element API を使えばできそうだけど、PHP書かないとなー、、、と。 @BUN に使い方教えてもらって少し理解は進んだけど。(これも若干面倒)
そもそも GraphQL があるんだしなんかいい方法ないものかなぁと。
Feed Me は JSON や XML の URL を指定する必要があるので、URLベースで GraphQL のクエリ含めて管理できて、そのURLにアクセスするとレスポンス返してくれるようなものがあればいいなぁ、、、と。
そんなことを思って色々調べてたら、そもそも Craft CMS のテンプレートで GraphQL のクエリが使えるようになっていた。
Running GraphQL Queries in Craft Twig Templates -… | CraftQuest
https://craftquest.io/courses/...
Functions | Craft 3 Documentation
https://docs.craftcms.com/v3/d...
へー!!!知らなかった!!
GraphiQLで確認
管理画面で、とりあえずクエリを試してみたのがこんな感じ。
入力タイプとかマトリックスの補完とかがだいぶ便利になってきた気がする。
テンプレート
テンプレートはこんな感じでクエリをかいて渡すだけ。