エントリーアーカイブで関連するエントリーへのリンクを貼りたいと思い、WingMemo: エントリーアーカイブに関連する記事一覧を表示するを参考にして、テンプレートモジュールを作成してみました。
<MTSetVarBlock name="eid"><MTEntryID></MTSetVarBlock>
<MTEntryIfTagged>
<MTSetVarBlock name="etag"><MTEntryTags glue=" OR "><$MTTagName$></MTEntryTags></MTSetVarBlock>
<MTEntries lastn="11" tags="$etag"><MTSetVarBlock name="tid"><MTEntryID></MTSetVarBlock>
<MTSetVarBlock name="ecount"><MTEntriesCount></MTSetVarBlock>
<MTIf name="ecount" gt="1">
<MTEntriesHeader><div class="trackbacks"><h2 class="trackbacks-header">関連するエントリー</h2><ul></MTEntriesHeader>
<MTUnless name="tid" eq="$eid">
<li><a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a></li>
</MTUnless>
<MTEntriesFooter></ul></div></MTEntriesFooter>
</MTIf>
</MTEntries>
<MTElse>
<MTSetVarBlock name="ecat"><$MTEntryCategory$></MTSetVarBlock>
<MTEntries lastn="11" category="$ecat">
<MTSetVarBlock name="xid"><MTEntryID></MTSetVarBlock>
<MTSetVarBlock name="ecount"><MTEntriesCount></MTSetVarBlock>
<MTIf name="ecount" gt="1">
<MTEntriesHeader><div class="trackbacks"><h2 class="trackbacks-header">関連するエントリー</h2><ul></MTEntriesHeader>
<MTUnless name="xid" eq="$eid">
<li><a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a></li>
</MTUnless>
<MTEntriesFooter></ul></div></MTEntriesFooter>
</MTIf>
</MTEntries>
</MTElse>
</MTEntryIfTagged>
もう少しスマートにできそうな気がしないでもないですが・・・(^^;。
同じタグがつけられたエントリーが他に無かったり、カテゴリーに他のエントリーが無い場合は、表示させないようにしています。
Movable Type 4.1で確認していますのが、Movable Type 4.01でちゃんと動くかはわかりません。
【2008年2月14日追記】
設定で静的に構築するようにしていて、エントリー数が多いブログの場合、再構築に掛かる時間が長くなる可能性があります。
ダイナミックパブリッシングに変更するか、再構築に掛かる時間を我慢するか、サーバーのスペックなども含めて検討したほうが良いと思います。
コメント