September 1, 2010

Movable Type 5: 関連エントリーの表示

ブログの個別アーカイブのページ下に関連エントリーのリンクをつけようと思いつき、色々調べてみたのですが、どうもMT5向けの記事が少なくて苦戦したのでメモ代わりに。

関連エントリーの表示で考えないといけないのは、どのエントリーを選んでくるかと、どうやってリストにするかです。エントリーを選ぶには、エントリー毎に付けてあるタグを参照するか、タグを付けてなければカテゴリーから選んでくると言う2つから選ぶ事になります。ここのブログの場合、タグなんて付けてなかったので、必然的にエントリーから選ぶしかないというのが最初のハードル。

次にどうやってリストにするかですが、プラグインを使うか、MT4以降に実装されたタグを駆使するかです。プラグインを使おうとするとどうしてもタグでエントリーを選ぶ物がほとんどです。エントリーから選んでくるモノも無くはないのですが、MT5での使用例があんまり見つからなくて、不安が残ります。

色々調べた結果、TagSupplementalsというプラグインを使って、表示に関してはタグのあるエントリーはタグで、タグの無いエントリーはカテゴリーでリストを作るというテンプレートモジュールを作成する方法を見つけました。そのエントリー自身を表示させないようにしたり、スタイルシートを適応させたりするところで試行錯誤を繰り返しましたが、なんとか上手くいきましたよ。

まずはプラグインをインストールして、「関連記事」というテンプレートモジュールを作成し、以下のタグを貼り付けて保存します (スタイルシート関連のタグは外しています)。

<MTEntryIfTagged>
<!-- 関連記事 TagSupplementals -->
<div class="relatedentries">
<h3>関連記事</h3>
<ul>
<MTRelatedEntries lastn="5" weight="idf">
<li><a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a></li>
</MTRelatedEntries>
</ul>
</div>
<!--/ 関連記事 TagSupplementals -->
<MTElse>
<div class="relatedentries">
<MTSetVarBlock name="ecat"><MTEntryCategories glue=" OR "><
$MTCategoryLabel$></MTEntryCategories></MTSetVarBlock>
<h3>関連記事</h3>
<ul>
<MTEntries lastn="5" category="$ecat" unique="1">
<li><a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a></li>
</MTEntries>
</ul>
</div>
</MTEntryIfTagged>​

後は、表示させたいアーカイブテンプレートの適当な場所に、

<mt:include module="関連記事" />

を書き込めばOKです。

これまで、エントリー毎にタグを付けるのって、面倒なのでやってなかったのですが、今後は付けていこうと思いますよ。過去のエントリーはかなりの数になるので、時間のある時にぼちぼちとやっていこうかと思ってます。


今回参考にさせてもらったページ。
TagSupplementals - ogawa - 「タグ」機能を追加・拡張するプラグイン。 - Project Hosting on Google Code
「TagSupplementals Plugin」プラグインで関連記事を表示:Nakamura's Weblog
MT5 関連記事へのリンクを自動表示したい:+Chip(プラスチップ)

トラックバックURL

このエントリーのトラックバックURL:
http://little-bird.org/cgi-bin/MT/mt-tb.cgi/2975

コメントする