Entry

カテゴリにタグクラウドを追加

カテゴリのページの先頭に、タグクラウドを表示するようにした。例えば、Informationカテゴリのページには、そのカテゴリーに含まれる記事に付けられたタグの一覧が表示される。これは最近色々なサイトで見かけるようになってきたけど、情報のインデックス化手法として面白いと思ったので自分のサイトでも採用してみた。しかし、Animeのタグの多さはどうしたもんか。
なお、Movable Typeの初期の頃はタグ機能が無かったので、最初の方の記事にはタグが付けられていない。そもそも、タグ付け方は自分の感性で適当に決めているので、あまり確実な情報インデックスではないのだけど、まぁ見た感じ面白いのでいいかな、と。

Movable Typeでこれを実現するには、MTCollateというプラグインを用いる。これは大雑把に言えば、一覧データを一度取り込んだ後、その一覧データを整形して出力するというプラグイン。

例えば今回のように、現在のカテゴリに含まれるタグの一覧出力するには、カテゴリアーカイブのテンプレート内部で以下のような記述を用いる。

<MTCollateCollect name="TagList">
<MTEntries><MTEntryTags>
<MTCollateRecord>
<MTCollateSetField name="TagLabel"><$MTTagLabel$></MTCollateSetField>
<MTCollateSetField name="TagSearchLink"><$MTTagSearchLink$></MTCollateSetField>
<MTCollateSetField name="TagRank"><$MTTagRank$></MTCollateSetField>
</MTCollateRecord>
</MTEntryTags></MTEntries>
</MTCollateCollect>
<MTCollateList name="TagList" sort="TagLabel:distinct">
<a href="<$MTCollateField name="TagSearchLink"$>" class="tagRank<$MTCollateField name="TagRank"$>"><$MTCollateField name="TagLabel"$></a>,
</MTCollateList>

MTCollateCollectの中でリスト情報を取得して変数に格納、MTCollateListの中でリストの出力を行う。
この場合、カテゴリー一覧よりタグを抜き出して、それを昇順にソートして出力するという処理を行っている。MTCollateListのsort=”TagLabel:distinct”は、TagLabelの値でソート&重複データは出力しない、という意味。TagLabelにはMTColalteCollect内でMTTagLabelの値を入れている。

MTCollateプラグインは、標準の方法ではできないような並び替えや出力を行う事ができる汎用性のあるプラグインなので、これが使えると、MovableTypeデザインの自由度はかなり高まる。そんなわけで、割とお勧め。


Comments (0 件)

コメントを残す

メールアドレスが公開されることはありません。