Contenfulの新機能Tagsを使ってみた
Tags NEWを発見
Contentfulを使っているとTags NEW
が出ているので、どんなものか調べてみました。
今までContent Modelにタグをつけるには、Textフィールドでtag
を作っていましたが、これがいらなくなりそう。
The use of tags streamlines content filtering and search.
Tagsはコンテンツのフィルタリングや検索に使えるとのこと。これは期待できそう。
Tags 使ってみた
Contentfulのfreeプランを使っているのですが、Tags機能を使用できるので試してみました。
Tagsの作成
Tagsタブからタグを作成できます。
Tagsの作成画面はこんな感じです。今回newsのContent Modelでweather
というタグを付けてみます。
Tag visibility
という項目がありますが、これをPublicにすることで作成したタグをAPIのクエリに入れて検索することができます。Contenful内部でコンテンツの管理のためだけにTagsを使用するのであれば、ここはPrivateでも良いでしょう。
作成したタグはTagsタブで参照できます。セレクトボックスで作成されたタグを簡単に選べて良いですね!
Tagsによるフィルタリング
コンテンツに付けたTagsが歯車マークでTagsを押すとTagsをテーブルで確認できます。
また、Filterを押すとtags
があり、これを押すとTagsの検索ができます。便利ですね。
Tagsによる検索
metadata.tags.sys.id[all]=weather
のようにして作成したタグを入力すればタグごとにデータをリクエストできるそうです。タグはmetadata.tags.sys.id[all]=weather,sports
のように複数入れてリクエストも可能です。
なお、[all]
と書きましたが、他には、[in]
と[exsits]
があります。使い分けとしては、
[all]:完全一致
[in]: 部分一致
[exists]:tagsが存在するか(valueはBoolean値)
です。
今回、Reactからcontenfulのライブラリを使用しContentful Delivery APIをReactからリクエストしましたが、
const response = await client.getEntries({
content_type: "news",
order: "-sys.createdAt",
'metadata.tags.sys.id[all]': 'weather',
limit: 10
});
のように指定することで、期待通りTagsがweatherのデータのみリクエストできました。
Tagsの削除
SettingsのTagsからTags管理ページに入ってTagsの削除できます。なお、タグが1つでもコンテンツに紐付いている場合はタグを削除できません。「え、タグを消すのは面倒やん...」と思うことなかれ、コンテンツ管理ページではタグを一括で変更・削除できます。
Tagsの上限
タグ管理ページを見ると、上限は500まであります。十分すぎますね。
ちなみに、1つのコンテンツには100までのタグを付与できるみたいです[1]。そんなにいらんやろ。
まとめ
新機能のTag機能を使用すれば、コンテンツに属性を与えることで管理や検索で大活躍しそうです。何より今までコンテンツに追加していたtagフィールドが不要になるので、フィールドの節約は無料版のContenfulを使っている人はお得ですね。
これからもケチケチContentfulを利用させていただこうと思います。
Discussion