以前、ブログの最終更新日付を表示するというエントリーを書きましたが、indexcontextプラグインを使えば、いちいちメインページに別ファイルを作らなくてもアーカイブ頁に表示させることが出来ますね。
ということで、他の方法も合わせて、「アーカイブ頁にちょいと記入するだけで実現できるお手軽なブログの最終更新日表示法」をメモっておきたいと思います。なお、静的生成には再構築の罠があるので、基本ダイナミック向けのカスタマイズだと思って下さい。
*さすがに<$MTDate$>はプラグインあるなしに関わらずダイナミック下では動きがアレ過ぎるので、今回の対象からは外してあります。どうしてもコメント・トラバを含めた最終更新日を使いたい!という場合は別ファイル方法で導入して下さい。
案A <MTArchiveList>を使う
indexcontextプラグインの記事を書いていて思いだしたのだけど、<MTArchiveList>タグ使えば別ファイル作らなくても可能でした。忘れていてご免よ、<MTArchiveList>くん~。
なお、<MTArchiveList>を使った場合は「最新のエントリーの投稿日時」になります。
<MTArchiveList archive_type="Individual" lastn="1">
最終更新日:<$MTArchiveDate$>
</MTArchiveList>
案B indexcontextプラグインを使う
いよいよindexcontextプラグインの登場です。導入方法などはこちらを参照。
<MTIndexContext>
<MTEntries lastn="1">最終更新日:<$MTEntryModifiedDate$></MTEntries>
</MTIndexContext>
上の例だと「最新のエントリーが一番最後に更新された日時」になります。<$MTEntryModifiedDate$>を<$MTEntryDate$>にすれば「更新日時」ではなくて「投稿日時」になります。
案C indexcontextプラグイン+α
前の記事の「エントリーの最終更新日に過去記事も反映させたい場合」のテンプレ直接記入版。
Counter Pluginはダイナミックに対応してないので(*、代わりにダイナミックに対応したCompare PluginとAutoIncrementalVarプラグインを使います。
<MTIndexContext>
<$MTSetVarAutoIncremental name="entryNo" value="1"$>
<MTEntries lastn="0" sort_by="modified_on">
<MTIfEqual a="[MTGetVarWithIncrement name='entryNo']" b="1" numeric="1">
<!--<$MTGetVarWithIncrement name="entryNo"$>-->最終更新日:<$MTEntryModifiedDate$>
</MTIfEqual>
</MTEntries>
</MTIndexContext>
たかが最終更新日のために3つもプラグイン使うか!?という突っ込みはさておき、やろうと思えば出来ますってことで覚え書き。これで動作確認できてますけど、もっとスマートな書き方があれば教えてやって下さい(^^;。
<2007.8.27, 2021 追記>
(* カウンタープラグインは4.0出荷後にダイナミックに対応しました。現在はCompare PluginとAutoIncrementalVarプラグインがダウンロード出来ないので、こちらのカウンタープラグインを使った方法を<MTIndexContext>~</MTIndexContext>で囲むことで同じ結果が得られます。