記事を仕分けするTaxonomyについてまとめてみます。
記事をカテゴリーやタグで仕分けする機能としてTaxonomyを使用します。DrupalのTaxonomy機能はカテゴリーやタグといった用途を限定しておらず、カテゴリー的な使い方、タグ的な使い方という目的に応じて使用方法を変えていきます。
考え方としては記事に任意のラベルを複数持たせて、ラベルで記事を探すという考え方になっており、このラベルを自由に作成出来る機能がTaxonomyと考えると理解しやすいと思います。
Drupalでタクソノミーを使用するには
- 親ジャンルとしてボキャブラリーを作成する。
- 作成したボキャブラリーに子ジャンルとしてタームを作成する。
私のサイトを例にとると
- 記事内容というボキャブラリーを作成
- 記事内容にタームとしてDrupal Articleを作成
- 記事内容にタームとしてWeb Articleを作成
- 記事内容にタームとしてMac Articleを作成
- 記事内容にタームとしてAWS Articleを作成
となっており、メニューのDrupal ArticleをクリックするとDrupalの記事が一覧で表示されます。
記事の仕分けを行う基本になるので、基本的な使用方法と概念を理解して行きます。
今回、DrupalのTaxonomy機能についての記事をまとめていきたいと思います。
DrupalのTaxonomy機能はシンプルでありながら、自由度が高いので、色々な使い方が出来ます。もっとも基本的な使い方として記事をカテゴリーで仕分けする機能としての用途があります。
WordPressを使用すると、カテゴリーとタグという機能を目にすると思います。このカテゴリーとタグは記事を仕分けする機能になりますが用途を考えてみましょう。
カテゴリーは記事を大まかにジャンル分けして、メニューに割り当て、閲覧者はメニューから記事のジャンルを探して見たい記事を見つけて閲覧します。カテゴリーは階層を持つので、例えば以下のような形で利用するのではないでしょうか。
飲食店を紹介する記事を書く場合以下のような例になります。
カテゴリーの使用例 飲食店をカテゴリー分け
|-- 飲食店
| |
| |-- 洋食
| | |-- ハンバーグ
| | |-- ステーキ
| | |-- ビストロ
| | |-- オムライス
| |
| |-- 中華
| | |-- 街中華
| | |-- 中華定食
| | |-- 四川料理
| | |-- 広東料理
飲食店 > 洋食 > ハンバーグのような形でカテゴリーは3階層になります。
実際の記事は、ハンバーグの記事を書くのですが、ハンバーグは洋食に属しています。洋食は飲食店に属しています。このような階層を持つ理由に、階層分けしないで、ハンバーグと四川料理を並べてしまうと、閲覧者が、目的のハンバーグの記事を探すことが困難になります。
閲覧者がハンバーグの記事はどこにあるかの道筋を立てると探しやすくなり、この道筋が 飲食店 > 洋食 > ハンバーグ のように大多数の方が連想する仕分けを行い、メニューなどに表示して行きます。
カテゴリーは、階層があり、階層の仕分けは運営者が行い、階層の道筋を閲覧者が利用します。
今度はタグについて考えてみます。タグの一般的な利用はカテゴリーと異なり、最初に設定する必要がなく、記事を作成する都度必要に応じ新しいタグを追加して行きます。タグから記事を探すにはメニューではなくタグクラウドにタグを一覧で並べて そこを見たユーザーが興味のあるタグから記事を見てくれます。カテゴリーとの違いは、タグはキーワードを自由に設定出来る事から階層の概念がありません。
同じ飲食店の記事を書くのにタグを指定すると以下のような形になります。
|-- 飲食店
|-- 洋食
|
|-- ハンバーグ
|-- ステーキ
|-- ビストロ
|-- オムライス
|
|-- 街中華
|-- 四川料理
|-- 広東料理
タグの用途は、より詳細な情報を上位階層に設けて閲覧者に提供する事で、閲覧者が探し出せない記事を探しやすくする事が出来ます。問題は階層の概念がないため、タグが不必要に多くなり閲覧者が目的の記事を探し出せないといった逆効果となってしまう事があります。
Drupalのタクソノミーは、カテゴリーやタグといった特定用途としての概念を持たせていないので、利用目的によってカテゴリーとして使用したり、タグとして使用したりする事が出来ます。
WordPressだと、タグ > ハンバーグ、カテゴリー=飲食店 > 洋食 > ハンバーグとなりますが
Drupalだと、ボキャブラリー > タームという基本概念があるので
飲食店=ボキャブラリー > 洋食=親ターム > ハンバーグ=子タームとなり階層を持たす事が出来ます。
WordPressのカテゴリーと結果は同じですが、WordPressのカテゴリーは設定した表示しか出来ません。Drupalも設定は必要ですが別途、洋食 > ハンバーグとする事や、タグ的にハンバーグ、ステーキ、ビストロと並べて使用することも出来ます。
カテゴリーは基本的にメニューとして使用することを前提に階層が決められています。一般的にWordpressはページ毎にメニュー項目を変えていく使い方はあまり考えられていません。利用することは可能ですが結構面倒な作業となります。Drupalはブロックレイアウトの機能を持っているので、記事毎にメニューを容易に変える事が出来ます。
今回は、タクソノミーの説明なので割愛していますが、ビュー機能でタクソノミーの要素を抽出条件として使い更にタームでフィルタリングする事でかなり細かくカテゴリー分けを行い、目的に応じて整理したページを容易に作成する事が出来ます。
Drupalのタクソノミーの役割は、記事最初に書きましたが、記事に複数のラベルを貼る事で、記事をラベルで自由に呼び出し自由に使う事が出来ます。この事がタグやカテゴリーといった一般的な記事のまとめに特定した使い方だけでなく、自由に記事を整理し、自由に呼び出し、自由に表示させる事が出来ます。
タクソノミーだけでなく、URLのエイリアスも記事毎に設定可能となっていますが、このエイリアスにルールを用いる事で、エイリアスによる仕分けも可能となっています。
タクソノミーの記事から外れるので程々にしますが、Drupalの面白さに複数の機能を組み合わせる事で一つの記事という情報を様々な形で使う事が出来ます。後述しますがタクソノミー単体でもリストページを形成します。他の要素と組み合わせる事で、単体のタクソノミーでは一つの利用用途だったものが、ビューと組み合わせて、複数の利用用途となり、ブロックレイアウトやエイリアスを組み合わせると更に利用用途が増えてきます。
#C15 Content and Structure.の記事でタクソノミーの簡単な使い方を説明していますが、もう一度こちらで解説します。
タクソノミーを新たに使用する場合
- ボキャブラリーの作成
- ボキャブラリーにタームを作成
の2つが必要になります。
#C15 Content and Structure.の記事で解説した#L02 Lee 101Z 50’s記事内に設定している2つのタクソノミーは
- タグ : Life style | タグ=ボキャブラリー / Life Style=ターム
- 記事内容 : Old-Clothes Article. | 記事内容=ボキャブラリー / Old-Clothes Article.=ターム
となっています。
タグと命名していますが、別にタグという名前でなくても構いません。このタグに設定しているタームは
- Creation
- Life Style
の2つのみで、役割は、当サイトの2つのテーマのどちらの記事かの判断をするために設定しています。たかだか2つのタームですが役割は重要で、テーマ全体のリストや、トップページの新着情報に表示を行うために設定しています。記事を新たに作成しどちらかのタームを指定することで、公開すると、テーマのリストと、トップページの新着に必ず記事が表示されます。
リストのページはビューにて、タクソノミーを抽出条件に指定し、抽出結果からのフィルター要素にタームを指定しています。その事で記事内にLife Styleと指定した記事はビューで指定し作成したリストページである/Life Styleに表示されます。このページはメニューリンクとして使用しています。
これとは別に、タクソノミー単体でのリストページが作成されています。このページは、記事下部に表示されるタグ:Life Styleのリンクをクリックすると表示されます。
ボキャブラリーで記事内容と命名し、記事内容に合わせたタームを設定しています。
- Old-Clothes Article.
- Fashion Article.
- Watch Article.
- Photo Article.
上記のタグとしたボキャブラリー同様ビューでの使用も可能ですが、現状必要ないので各タームで生成されるページをカテゴリーリストとして使用しています。メニューにカテゴリーリストとしてリンクを設置しています。
設置した記事下部に表示される記事内容:Old-Clothes Article.のリンクをクリックしても同様のリストが表示されます。
サイト構築 > タクソノミーでボキャブラリーとタームを作成します。
+ボキャブラリーを追加
名前、説明、言語の選択、タームの言語選択を行い保存します。
タクソノミーのボキャブラリーリストに作成したボキャブラリーが表示されます。
デフォルトではタームのリストが表示されプルダウンメニューでボキャブラリーの編集をクリックすると
- リスト
- 編集
- フィールドの管理
- フォームの表示管理
- 表示管理
- 権限の管理
- タクソノミーボキャブラリーを翻訳
の設定が行えます。ここで設定したフィールドが実際に作成するタームに反映されます。フィールドで、タームが生成するリストページに様々な要素を追加出来ます。私はデフォルトで使用していますが、タームの説明というフィールドがHTML要素を持っているのでそこにカテゴリーリストとして使用している内容の説明を記載しています。
サイト構築 > タクソノミー > Manage > 記事内容を編集 > 記事内容
- +タームを追加
- 名前、説明HTML要素、関連 > 上位のターム、リビジョン情報、URLエイリアスの設定を行い保存します。
- 名前がOld-Clothes Article.
- 関連 > 上位のタームは指定なし、必要に応じて階層化が出来ますが管理上であり、Web上の階層概念とは異なります。
- リビジョンログは管理メモになります。
- URLエイリアスはデフォルトでterm-xxxとなります。ビューのルールでterm-がないとリストページが生成されません。term-lifestyle-old_clothesと設定しています。
以上でタームを設定しています。
タクソノミーは記事に持たせるラベル機能なので、記事にタクソノミーを持たせるように設定する必要があります。
サイト構築 > コンテンツタイプでタクソノミーを持たせるページの設定を行います。設定を行うコンテンツタイプを選びタクソノミーをフィールドに追加します。
詳しくは以下の記事にまとめていますので参照ください。
#C15 Content and Structure.
コンテンツタイプの設定と指定コンテンツでページを作成する例を挙げています。タクソノミーの設定後、コンテンツタイプにタクソノミーのフィールドを追加し、公開する記事の作成で指定のタームを選択しています。
上記の例は設定したタームを実際の記事に持たせて、公開後のリスト化に使用しています。
Drupalのタクソノミーについて簡単にまとめて見ました。概要をざっとまとめた記事ですが、Drupalのタクソノミー機能は記事にラベルを自由に設定出来る機能である事は理解出来たのではないでしょうか。このラベルを利用して記事をどのように使っていくかを考えて行きます。
今回の記事を要約すると
- タクソノミーは記事を仕分けする為のラベルである。
- 複数のタクソノミーを目的に応じて設定する
- タクソノミーを使用するには、ボキャブラリー > タームの設定を行い、タームがタグやカテゴリーとして機能する
- 設定したタームを使用するには、使用するコンテンツタイプのフィールドにボキャブラリーを指定する必要がある。
- 記事にタームを持たせる事で、タクソノミーのリストページが生成されカテゴリーリストとして利用出来る。
- ビューでタクソノミーを抽出条件にしてしボキャブラリーやタームをフィルタリング条件にすることで、より自由なリスト化が可能である。
となります。
次項で、タクソノミーの実際の使用例を解説して行きます。
Taxonomy-2
タクソノミーの使用例をまとめています。タクソノミーを使用しているサイトの記事やページを見ながら解説しています。