これは、Movable Type Advent Calendarの16日目の記事です。
「a-blog cms Advent Calendar」で、WordPressのサイト制作経験もある笠谷さんが、このような記事を書いていました。
a-blog cmsのエントリーの分けかたについて(WordPressと比較して)
https://qiita.com/kasaya-mintcode/items/853ecab650992cded0c2
笠谷さんは記事の中で、a-blog cmsがカテゴリーをひとつしか選択できない仕様にしていることへの合理性=ウェブページとの機能統合・サイトマッピングの容易さについて言及しており、興味深く読みました。
a-blog cmsにおいては、カテゴリーの親子関係はそのままディレクトリの構造であり、パーマリンクとも一致し、テンプレートの構造とも一致しています。WordPressではこれらはすべて別の概念であり、特にパーマリンクには複数の選択肢があり、カスタム投稿タイプを駆使するようなサイトでは、条件分岐も一筋縄ではいきません。「外観 > メニュー」の階層性はまた別の概念であり、パンくずリストの構造も複雑です。
しかし、Movable Typeの場合はこの指摘が当てはまりません。Movable Typeは、カテゴリーにたったひとつの独自機能を追加しただけで、カテゴリーの優位性を向上しています。
それは、「記事ごとに、その記事の『主カテゴリー(プライマリカテゴリー)』を指定できる」ことです。
カテゴリーの主・副機能とは
Movable Typeは、他の多くのCMSと同様、カテゴリーを複数選択できます。選択したカテゴリーはチェックボックスの下にリストアップされますが、どれかひとつをクリックすると、★がついて太字になります。
これが「主カテゴリー」です。
なお、通常は特に意識する必要はなく、最初に選択したカテゴリーが自動的に主となります。
主カテゴリーはそれ以外(副カテゴリー)とは異なる、以下の権限を持ちます。
アーカイブマッピングにカテゴリー情報が含まれたときに、主カテゴリーの情報が優先される
Movable Typeの独自タグでそのカテゴリーのみを抽出できる
それぞれについて解説します。
アーカイブマッピングでの優位性
Movable Typeは、各テンプレートに対し、「どのようなURL法則で表示するのか」という「アーカイブマッピング」の設定ができます。
この機能によって、記事ページのURLにカテゴリー名を含めるか、記事ページのファイル名をスラッシュ終了にするか、entry-(エントリーID).htmlとするかなど、詳細に定義できます。
このとき、URLにカテゴリー情報(IDや英語名)が含まれていた場合、必ず「主カテゴリー」が選ばれます。
これにより、カテゴリーを複数選択した場合でも、a-blog cmsと同様のURLの固定化を可能としています。
EntryPrimaryCategoryタグによる抽出
さらに、Movable Typeには、エントリーに付与されたカテゴリーのうち、主の情報のみを取得できる「EntryPrimaryCategory」というタグがあります。
mt:EntryPrimaryCategory
https://www.movabletype.jp/documentation/appendices/tags/entryprimarycategory.html
このタグを利用すると、各エントリーのナビゲーションやMETA情報に、主カテゴリーの情報を含めることが簡単にできます。
利用機会は少ないですが、主カテゴリー以外(副カテゴリー)を繰り返し取得する、「EntryAdditionalCategories」タグもあります。
mt:EntryAdditionalCategories
https://www.movabletype.jp/documentation/appendices/tags/entryadditionalcategories.html
具体的な活用例
かつては、主カテゴリーはそれほど重要な機能ではありませんでしたが、最近の記事同士の関連付けを多用した、回遊率の向上を重視したサイトでは、この機能が大いに役立ちます。
たとえば、北海道内のイベント情報を掲載するサイトを作り、あるエントリーに「お知らせ」「イベント情報」「地域 > 札幌」の3つを指定したとします。
このとき、どれかひとつ(ここでは「イベント情報」)を主カテゴリーに指定しておくと、以下のような実装が容易にできます。
記事ページで主カテゴリーをアイコン表示できる
記事ページから一覧ページへ戻るナビゲーションのリンク先を、必ず主カテゴリーの一覧にできる
METAのtitleや、schema.orgなどの追加情報に、必ず主カテゴリーの情報を掲載できる
また、カテゴリーを複数選択していた場合は、すべてのカテゴリーの一覧にエントリーへのリンクが掲載されます。カテゴリーを条件とした記事の絞り込みも、すべてのカテゴリーが対象となります。
記事への移動経路を複数持たせつつ、記事ページでの情報を固定化できるのです。
補足
そんなこんなで、主カテゴリー機能には、昔からずいぶんお世話になっています。
高度なフィールド設定ができるDrupalには、そういう機能があるのでは…と一応調べてみましたが、数の制限はできるものの、主・副の指定ができるフィールドは、デフォルトではないようでした。
カテゴリーの使い勝手がよくて、頻繁に利用するばかりに
「記事のカテゴリー絞り込みを、表示名ではなくIDでできればいいのに」
「ウェブページとフォルダ、なくてもサイト作れるのでは…?」
「カテゴリー選択画面が小さくて操作しづらくてヴァーーーーーーッ」
という細かいところが気になったりします。
UI関係の向上と、主・副機能の継続を、来年のMovable Type 7に期待しつつ、今日のAdvent Calendarの記事を締めることにいたします。
Movable Type Advent Calendar
https://adventar.org/calendars/2203
前の日の記事
丸12年になるブログをMovableType.netでリニューアル中 – 継続は力なり!なのか?http://www.drivemenuts.com/blog/archives/2017/12/movable-type-advent-calendar-2017-12-15.html