よりひろい フロントエンド
Author : Kazuhiro Hara
Author : Kazuhiro Hara
Wed Jan 08 2025

Contentful のタグを変えた話

トップページに自分的に Hot な カテゴリ (各記事にはタグという形でカテゴリを複数持たせている) を絞り込んだ Specials というカラムを設けた。これをやるにあたってタグの使い方を変更したのでメモしておく。

このサイトでは CMS として Contentful を利用している。Contentful には自由にコンテンツタイプを作成する機能があり、結構自由な記事情報を構築することができる。

タグもこのコンテンツタイプ (コンテントモデルと Contentful では呼ばれている) を使って構築していて、多対多な構造になっている。

コンテントモデルで挿入したタグ

さて、Specials カラムを構築するにあたって、複数のタグについての記事のみ抽出して表示したかったのだが、そんなに簡単にできることではなかった。ドキュメントを読むとどうやらフィルタリング機能をつかって多対多のエントリーをフィルタするのはできないようだ。

もちろんエントリーを絞り込むだけではだめで、該当タグ以外のものを除外する必要もある。もちろん絞り込みができない以上、除外などはもっとできない。

実は Contentful にはタグのような機能を持った機能が用意されている。個人的にはコンテントモデルをつかっていろいろなデータの関連を表現したかったのだが、標準で用意されているタグを使うと絞り込みが出来るということがわかった。おそらく特殊なデータ構造をしているのだろう。はじめから標準機能を使っておけばよかったと後悔である。当初はタグにいろいろなメタデータを持たせるなどの野望があったりしたのだ。

標準機能のタグ

既存の Tags モデルをあったもの全てを標準機能のタグに登録し、既存の記事のタグをつけかえることでフィルタリングをすることができた。現在見ている記事のタグはまったく見た目的には変化をしていないが、データ構造的にはまったく異なるものになった。

CMSContentful

Share

About site

「よりひろいフロントエンド」はじめました

いろいろやっている自分を一言で表す言葉として「より広いフロントエンド」を思いつきました。このサイトではこの言葉を中心に ウェブ、XR、UI デザイン、バックエンド、インフラストラクチャーやその周辺のことを興味の赴くまま広くディスカバリーしていきます

About Me

カンソクインダストリーズのロゴ

「よりひろいフロントエンド」運営元 カンソクインダストリーズ では、フロントエンドを中心によろずご相談お受けいたします。お気軽にお問い合わせください。