
コンテンツとコンテンツタイプの関係
一般に Web コンテンツは、タイトル、投稿日時、本文、画像、タグ、コメントなど、一定の構造を持っています。ブログを例にとると、ブログ記事の内容として入力すべき項目が決まっており、その構造に基づいて記事を作成すると思います。
コンテンツごとに含まれる情報がバラバラで規則性がまったくない場合は、任意のマークアップを記述できる入力欄(項目)が 1 つあれば十分です。しかし、現実のコンテンツの多くは決まった構造に基づいて作られています。たとえば、EC サイトの商品ページには、商品名、価格、商品説明など、商品情報としての決まった項目がありますし、企業サイトのスタッフ紹介ページであれば、名前、肩書、担当業務、自己紹介文のように、全員のページが決まった項目を含むように記述されている場合が多いでしょう。

項目が決まっている場合、全体を単一のマークアップテキストとして記述するのではなく、項目ごとに分けて扱うことによって、入力時の手間を減らしたり、カテゴリーや価格などの特定の項目を使うことで検索を容易にしたり、各項目の表示スタイルを変えるなど、システムによるさまざまな対応が可能になります。コンピュータが処理しやすい "構造化データ" としてコンテンツを作るわけです。先に例を挙げた商品ページやスタッフ紹介ページのように、コンテンツの構造はその目的によって変わりますから、そうした用途ごとに構造を類型化し、それぞれの構造に従う実データとしてコンテンツを作っていくことになるでしょう。

こうした考え方に基づいてコンテンツを管理するには、任意の構造をコンテンツの型(タイプ)として自由に定義できる仕組みが必要です。第 2 回でも触れたように、Drupal には非常に早い時期(バージョン 4.6)からこの発想に基づく機能が提供されており、その後、Drupal 7 で Field モジュールとしてコアに取り込まれました。Drupal 7 の最初のリリースが 2011 年の 1 月ですから、この機能にはコア入りした後だけでも 10 年以上の歴史と実績があるわけです。

Drupal 4.6 の flexinode によるコンテンツタイプ定義画面
Drupal のコンテンツタイプがブログシステムのカスタムフィールドと同列に語られることもありますが、固定の投稿タイプにフィールドを後付けで追加できるということと、データ構造としてのコンテンツタイプを定義するということは、結果的に似た機能が実現できたとしても、その目的や適用範囲が全く異なると言って良いでしょう。

投稿タイプの拡張である限り、そのデータはどこまで行っても Web コンテンツです。しかし、一般的な Web アプリケーションの中には、"コンテンツ" としてエンドユーザーに対して表示されることのない構造化データを記録するものもあります。こうした情報を非表示の投稿コンテンツとして管理することは可能かもしれませんが、それは本来の目的を逸脱した使い方であると言わざるを得ません。Drupal ではバージョン 7 以降、コンテンツの上位概念としてエンティティという構造化データを扱えるようになり、エンドユーザー向けコンテンツに限らない、汎用の構造化データ管理システム基盤として使えるようになっています。こうした点を見ても、Drupal のコンテンツタイプはブログの投稿タイプやその単なる拡張とは根本的に異なるものだということがご理解いただけるのではないかと思います。
既存のコンテンツタイプで投稿する
Drupal をインストールするときに「標準プロフィール」を選択した場合、インストールが完了した時点で最初から次の 2 つのコンテンツタイプが用意されています。
- 基本ページ
- 記事
基本ページは、ホームページで汎用的に使用できるページのひな形として用意されているもので、入力項目はタイトルと本文のみです。他方、記事はニュースやブログなど作成日時が重要な意味を持つ情報の記録に使用することを想定したもので、デフォルトで投稿日時が掲載されるほか、基本ページの項目に加えて、コメント、タグ、画像といった項目が追加されたものです。

一般的なブログシステムの投稿タイプと、Drupal の既存コンテンツタイプとの違いは、後者が単に最初から提供されているコンテンツタイプだというだけで、変更も削除も自由に行えるということです。事実、インストール時に最小プロフィールを選択した場合は、コンテンツタイプは 1 つも定義されません。標準プロフィールで用意される 2 つのコンテンツタイプはサンプル程度のものと言っても良いと思います。
ただし、特定の構造のコンテンツタイプを前提に機能するモジュールで自動登録されるコンテンツタイプでは、その動作に必要なフィールドを削除すると正常に機能しなくなるので注意が必要です。しかし、そのようなコンテンツタイプでも、フィールドの追加は自由に行える場合がほとんどです。
Drupal で既存のコンテンツタイプを使ってコンテンツを投稿する具体的な手順については、弊社が担当した ThinkIT の連載記事の 2 回目で紹介しています。この例では、「基本ページ」コンテンツタイプを使用して、会社概要や採用情報のページを作成します。コンテンツ作成にまつわる入力フォーマットや、URL エイリアス、ページのメニュー登録についても解説していますので、実際にコンテンツ投稿をするときの参考にしてください。

コンテンツタイプを定義してコンテンツを投稿する
上述のとおり、標準プロフィールでインストールした場合に最初から用意されるコンテンツタイプに特別な意味はありません。そのまま使用することも、項目(フィールド)を追加/削除するなど変更することも、削除して別のものを作成することも自由です。
独自のコンテンツタイプを定義して使用する手順も、上で紹介した弊社担当の連載記事で示しています。具体的には、「新着情報」というコンテンツタイプを定義してニュースリリースを作成する例や、「製品紹介」コンテンツタイプを定義して製品紹介ページを作成する例を示しています。コンテンツタイプの新規追加、コンテンツタイプへのフィールド追加、フィールドの設定方法など詳細に解説していますので、ひととおり手順をトレースすれば、Drupal のコンテンツタイプの使い方をマスターできると思います。

実際の手順を確認するときに、ぜひ参考にしてください。
まとめ
今回は、Drupal のコンテンツタイプと、それを使って実際にコンテンツを投稿する手順を紹介しました。次回は、コンテンツを分類するタグやカテゴリー、そしてそれを定義するための基となるタクソノミーを取り上げます。
Drupal 8初心者講座バックナンバー
Drupal初心者講座について
第1回 歴史に見るDrupal のDNA
第2回 Drupalはフレームワークか?CMSか?
第3回 Drupalの特徴
第4回 Drupal 8のインストール(1)
第5回 Drupal 8のインストール(2)
第6回 コンテンツを投稿してみる
第7回 ボキャブラリとタクソノミーを使う
第8回 コンテンツ管理におけるDrupalと他のCMSとの比較
第9回 Drupal 8のブロックシステム
第10回 Drupalの標準クエリービルダ Views
第11回 Drupalと他のCMSのクエリビルダー機能を比較
第12回 Drupal 8の多言語機能と他のCMSやサービスとの比較
第13回 Drupalの権限設定とWordPressやMovable Typeとの比較
第14回 Drupalのテーマシステムについて
第15回 Drupalの拡張モジュールの選定と利用方法
第16回 Drupalをもっと知りたい方に向けた各種情報