Movable Typeの月別アーカイブリストの表示がカスタマイズを経てどう変わったか、の画像

Movable Typeに標準で用意されているウィジェットで、月別アーカイブをリスト表示するものは2つあります。標準の「月別アーカイブ」ウィジェットと、「月別アーカイブ(ドロップダウン)」ウィジェットです。

こんな言い方をした人がいました。

「Weblogにおける月別アーカイブのリスト、あれはそのWeblogの年輪であり、皺なんだよ。Webにおける信用を担保する。だからどんなWeblogでもそれを表示させることをやめやしない、たとえそれをクリックする人が少なかろうとね。」

何はともあれ素敵な歳のとり方をしたいものですね。

今回はそんな月別アーカイブのリストの表示のさせ方をカスタマイズしました。ArchiveDateHeader、ArchiveDateFooter、2つのプラグインが必要です。

その目的は、月別アーカイブのリストの出力の仕方の拡張と、適切なマークアップの実現です。

プラグインのダウンロードは以下のページからできます。

Archive Date Header Plugin :: Adam Kalsey
小粋空間: ArchiveDateFooter プラグイン

MT4以降のバージョンを利用している場合、前者の「ArchiveDateHeader」プラグインには記述を加えてやる必要があるそうです。小粋空間で指摘されていました。加える記述はこちらです。

use MT::Plugin;
my $plugin = MT::Plugin->new({ name => 'MTArchiveDateHeader' });
MT->add_plugin($plugin);

こちらの記述は、ArchiveDateHeader.plの15行目と17行目の間に挿入してやり、

MT::Template::Context->add_container_tag(ArchiveDateHeader => &ArchiveDateHeader);

use MT::Plugin;
my $plugin = MT::Plugin->new({ name => 'MTArchiveDateHeader' });
MT->add_plugin($plugin);

sub ArchiveDateHeader {

結果としてこのようになればOKです(参考ページ:小粋空間

さて、ここからは実際に導入して見ます。プラグインのファイルはいつも通り、単体でpluginディレクトリにアップロードしてやればインストールは完了です。そしてテンプレートを編集します。新しく作成したウィジェットのテンプレートには以下のように記述しました。

<ul>
    <MTArchiveList archive_type="Monthly" sort_order="ascend">
    <MTArchiveDateHeader>
    <li><$MTArchiveDate format="%Y"$>
    <ul>
    </MTArchiveDateHeader>
        <li><a href="<$MTArchiveLink$>"><$MTArchiveDate format="%B"$>月</a></li>
    <MTArchiveDateFooter sort_order="ascend">
    </ul>
    </li>
    </MTArchiveDateFooter>
    </MTArchiveList>
</ul>

そして出力されたHTMLソースがこちら

<ul>
    <li>2006
        <ul>
            <li><a href="http://tadateto.net/2006/10/">10月</a></li>
            <li><a href="http://tadateto.net/2006/11/">11月</a></li>
            <li><a href="http://tadateto.net/2006/12/">12月</a></li>
        </ul>
    </li>
    <li>2007
        <ul>
            <li><a href="http://tadateto.net/2007/01/">1月</a></li>
            <li><a href="http://tadateto.net/2007/02/">2月</a></li>
            
<!--中略-->

            <li><a href="http://tadateto.net/2008/08/">8月</a></li>
            <li><a href="http://tadateto.net/2008/09/">9月</a></li>
            <li><a href="http://tadateto.net/2008/10/">10月</a></li>
        </ul>
    </li>
</ul>

記述方法についてはSCREAMO CREATIVE年別を月別アーカイブをリスト化 for Movable Typeの記事を大いに参考にしました。

月別アーカイブのリストをカスタマイズする際には、Movable Type 4 ドキュメント日付に関するテンプレートタグのモディファイアリファレンスのページもブックマークしておくと便利です。このカスタマイズを経て月別アーカイブリストの表示はエントリー冒頭のキャプチャ画像のように改められました。

さてエントリーのタイトルに(1)と銘打ってあるのは続きがあるからで・・実はこの2つのプラグインを利用したカスタマイズでは、問題点がありました。端的に言うと、エントリー冒頭の画像を見ていただくとわかるのですが、月別アーカイブを昇順にしようとすると、年別アーカイブも昇順にせざるを得ないというものです。

Webにおける記述では、最新のものほど上に来るというのが、個人的には自然と思います。次回「月別アーカイブを年別にソート(2)」ではその問題点を解決する方法を紹介します。

Leave Your Words




Trackback URL