共通パーツとは何か
CMSにおける共通パーツとは、複数のページから参照される情報のかたまりのことです。たとえばBtoBサービスサイトを例にとると、次のような情報が共通パーツの候補になります。
- サービス情報(サービス名、概要、特徴、料金、関連資料)
- 導入事例(顧客名、業種、課題、解決策、成果)
- セミナー情報(タイトル、開催日時、会場、登壇者、申込みリンク)
- 人物プロフィール(氏名、肩書、所属、写真、略歴)
- お知らせ(タイトル、本文、公開日、カテゴリ)
これらの情報は、それぞれの「詳細ページ」に表示されるだけでなく、サイトのあちこちに登場します。サービス情報なら、サービス一覧ページにも、ホームの「人気サービス」セクションにも、関連サービスの推奨欄にも表示されます。導入事例なら、事例一覧ページにも、サービス詳細ページの下部にも、業種別の関連表示にも出てきます。
共通パーツとして一元管理しておけば、サービス情報を1箇所で更新するだけで、参照しているすべてのページが自動的に更新されます。逆に、各ページに同じ情報をコピーして持たせていると、改訂時にすべてのページを手作業で直すことになり、直し漏れが発生します。
ここまでは共通パーツの基本的な利点で、多くのCMS解説記事で書かれていることです。本記事の主題はその先、つまり「共通パーツをどう設計すればよいか」です。
共通パーツ設計の最大のポイント
共通パーツを設計するとき、私が最も注意するのは次の点です。
設計の最初に、その共通パーツが表示されるすべての場所を洗い出す。
シンプルなことですが、これを徹底するかどうかで、共通パーツの完成度が大きく変わります。
詳細ページに必要な項目だけを見て設計すると、後で必ず破綻します。よくあるのは、詳細ページで「これだけ項目があれば十分」と思って共通パーツを設計し、いざ運用が始まって一覧ページを作ろうとしたら「並び順のキーがない」「サムネイル画像のサイズが違う」「カテゴリで絞り込みたいのにカテゴリ項目がない」と気づくケースです。
設計時に「この共通パーツはどこに表示されるか」を全部書き出していれば、こうした見落としは防げます。
「出し側」を洗い出すとはどういうことか
具体的に何を洗い出すか、サービス情報を例に考えてみます。
サービス情報という共通パーツは、最低でも次のような場所に表示される可能性があります。
- サービス詳細ページ:すべての項目を表示
- サービス一覧ページ:タイトル、サムネイル、概要の冒頭、カテゴリ、並び順
- ホームの「主要サービス」セクション:タイトル、サムネイル、ごく短い説明、リンク
- 関連サービスの推奨欄(サービス詳細の下部など):タイトル、サムネイル、ごく短い説明
- 検索結果ページ:タイトル、概要の冒頭、URLパス
- サイトマップ:タイトル、URLパス
- お問い合わせフォームの「興味があるサービス」プルダウン:タイトルだけ
- メールマガジン本文の関連サービス紹介:タイトル、ごく短い説明、URL
- 管理画面の一覧表示:タイトル、公開日、ステータス
これだけの場所で使われる可能性があります。それぞれの場所で必要な情報は微妙に違います。一覧ページではサムネイル画像が必要ですが、詳細ページのメインビジュアルとはサイズや縦横比が違うかもしれません。ホームの主要サービスセクションでは、20〜30文字程度の短い説明文が欲しいですが、詳細ページの概要は500文字あるかもしれません。
すべての出し側を洗い出してから設計すれば、共通パーツに必要な項目が見えてきます。たとえばサービス情報には、次のような項目が必要だと分かります。
- サービス名(フル)
- サービス名(短縮版、一覧やナビゲーション用)
- メインビジュアル(詳細ページ用、横長サイズ)
- サムネイル画像(一覧用、正方形サイズ)
- 概要文(詳細ページ用、500文字程度)
- 短い説明文(一覧用、80文字程度)
- 極短の説明文(ホーム・関連表示用、30文字程度)
- カテゴリ(絞り込み用)
- 並び順を決める数値項目
- 公開日(並び替え用)
- ステータス(公開・非公開)
詳細ページだけを見ていては絶対に出てこない項目が、出し側を洗い出すことで見えてきます。
表示パターンを共通パーツとセットで設計する
出し側が複数あるなら、それぞれの出し側でどの項目をどう表示するか、つまり表示パターンもセットで設計します。
表示パターンというのは、「この共通パーツを、ある場所に出すときにはこの項目をこのように表示する」というルールのことです。たとえばサービス情報の表示パターンは次のようになります。
- 詳細パターン:すべての項目をフル表示。メインビジュアル、サービス名(フル)、概要文(500文字)、料金、関連資料リンクなど
- カードパターン(一覧用):サムネイル、サービス名(フル)、短い説明文(80文字)、カテゴリ、詳細ページへのリンク
- コンパクトパターン(ホーム・関連表示用):サムネイル、サービス名(短縮版)、極短の説明文(30文字)、詳細ページへのリンク
- テキストパターン(サイトマップ用):サービス名(フル)、URLパス
- プルダウン用パターン:サービス名(短縮版)と内部識別子だけ
表示パターンをセットで設計しないとどうなるか。実装担当者が表示場所ごとに自分の判断で「この項目を使う」「この文字数で切る」と決めることになり、表示ルールがコードのあちこちに散らばります。後から「ホームの主要サービス欄の文字数を変えたい」となったときに、どこを直せばよいか追跡できなくなります。
表示パターンを共通パーツの設計書に明記しておけば、表示ルールが一箇所に集約され、変更にも対応しやすくなります。
並び順・絞り込みのキーを最初から持たせる
共通パーツが一覧表示される場面では、並び順や絞り込みが必要になります。これらのキーになる項目を、設計時に最初から共通パーツに含めておくのが重要です。
並び順のキーとして、よく使うのは次のようなものです。
- 公開日・更新日(時系列で並べる)
- カテゴリ・タグ(同じ種類でまとめる)
- 並び順専用の数値項目(運用者が任意の順序を決める)
- 人気度・閲覧数(自動集計で並び替える)
絞り込みのキーとして使うものも、ほぼ同じカテゴリ・タグ系の項目になります。
ここで設計の原則として一つお伝えしたいのが、並び順専用の数値項目を最初から1つ持たせておくことです。これは「念のため」の項目ですが、運用が始まってから「やっぱりこの順序で並べたい」というニーズが出てくることが非常に多いためです。
公開日順や更新日順だけでは対応できないニーズ、たとえば「主要サービスを上に固定したい」「キャンペーン中のサービスを目立たせたい」「特定のサービスを別の理由で優先表示したい」といった要望に、並び順専用項目があれば即座に対応できます。後から追加すると、既存データすべてに値を埋める作業が発生します。
共通パーツ間の関係を設計する
共通パーツは単独で存在するだけでなく、互いに関係を持つことがよくあります。たとえば次のような関係です。
- サービス と 導入事例(このサービスにはこれらの事例がある)
- サービス と 関連資料(このサービスにはこれらの資料がある)
- セミナー と 登壇者(このセミナーには誰が登壇する)
- 導入事例 と 業種(この事例はこの業種に属する)
これらの関係を設計時にどう持たせるか、いくつか判断ポイントがあります。
親子関係か、参照関係か
親子関係(サービスを削除したら関連する事例も削除されるべきか、孤立する事例として残すか)と、参照関係(事例側がサービスを参照しているだけで、削除時の影響はない)では設計が変わります。
1対多か、多対多か
1つのサービスに複数の事例が紐づくのは1対多です。1つの事例が複数のサービスに紐づく可能性があるなら多対多です。多対多の場合は、関係を保持する別の仕組み(中間テーブル、タグ機能など)が必要になります。
双方向の参照が必要か
「このサービスからこの事例を見る」だけでなく「この事例からこのサービスを見る」という双方向の参照が必要か。双方向なら、両側から参照できる仕組みが必要です。
これらは技術寄りの判断に見えますが、実は運用フローに直結する設計判断です。たとえば「サービスを廃止するときに、関連事例をどうするか」は、最終的には運用ルールの話になります。設計時にこれらの関係を明確にしておかないと、運用開始後に「廃止サービスの事例だけが孤児として残ってしまった」という事態が起きます。
この回のテスト観点
共通パーツの設計が適切かは、次の観点で確認できます。
- 想定される全表示場所に実データを入れて表示してみる:詳細ページだけでなく、一覧ページ、ホームの関連表示、検索結果、メールテンプレートなど、設計時に洗い出した全ての場所で実データを表示する。表示が不自然になったり、項目が不足していると感じる場所があれば、共通パーツの項目設計に戻る
- 既存コンテンツの中で「異常値」を含むデータを試す:タイトルが極端に長いもの、短いもの、画像なし、特殊文字を含むもの、極端に古いもの、極端に新しいもの。これらが各表示場所で破綻しないか確認する
- ニーズが出たときの並び替えを試す:仮に「特定の項目で並び替えたい」というニーズが出たとき、既存の項目で対応できるか。対応できないなら、並び順キーが不足している
- 削除・非公開時の影響を確認する:共通パーツを1件削除(または非公開)したとき、参照しているすべてのページがどう変わるか。「リンク切れ」「孤児データ」「表示崩れ」が発生しないか確認する
検証の方法論については第7回で詳しく扱います。
まとめ
共通パーツを設計するときの最大のポイントは、設計の最初に「どこに表示されるかを全部洗い出す」ことです。詳細ページだけを見ていては必要な項目が出てこないため、後から追加する羽目になります。
出し側を洗い出したら、それぞれの表示パターンをセットで設計し、並び順・絞り込みのキーを最初から持たせ、共通パーツ間の関係を明確にします。これらが揃うと、運用が始まってからのトラブルが大きく減ります。
共通パーツの設計は、CMS設計の中でも特に「設計時の判断が運用の数年先まで影響する」領域です。手戻りのコストが大きいので、最初の設計に時間をかける価値が十分にあります。
次回(第4回)は、ページの中で組み立てるパーツの設計について扱います。
著者
STSD株式会社代表 鴻田孝雄。製薬企業のWebサイトを中心に、BtoB向けCMSの開発・設計に20年以上関わっている。長期運用を前提とした設計と、運用負担を最小化する仕組み作りに関心がある。



































