« アーカイブファイルの出力パス カテゴリアーカイブのパンくずリスト »
年別のアーカイブインデックス作成
June 1, 2005 22:54 [ Dynamic Pub., ]
年別のアーカイブリストの作り方はChitatopops: 年ごとのアーカイブやJunkline - MT の過去ログリンク表示を nDiary (ごにょり済み)風にで紹介されている。
で、それらを参考にしつつ
- MT 管理画面の「テンプレート」 -> 「新しいアーカイブ・テンプレートを作る」
- テンプレートの名前 : 年別アーカイブ
- 適当に作って保存
- 次に「ウェブログの設定」 -> 「アーカイブの設定」で「新しく、テンプレートとアーカイブを関連付ける。」
- アーカイブの種類: 月別 、テンプレート: 年別アーカイブを選択し、「追加」
- アーカイブ・ファイルのテンプレート: <$MTArchiveDate format="%Y/index.php"$>(優先するテンプレートは月別アーカイブで使っているもののまま)
- 「変更を保存」
とやってみた。ところがなぜか /archive/2005/index.php などには月別アーカイブのテンプレートで表示されてしまって困った。月別アーカイブでは<$MTArchiveDate format="%Y/%m/index.php"$>を設定してたのだが、どうもこれが<$MTArchiveDate format="%Y/index.php"$>のパスでも優先されてしまうらしい。年別アーカイブのファイル名をindex.php以外にすると正常に表示される。
で、しょうがないので英語サイトを含めて検索してみたけどMTに関するいい記載は見つからず。しばらく格闘した後、ふと思いついて年別アーカイブを静的に生成するようにしてみた。・・・あっさり直った orz
アーカイブを全部 Dynamic Publishing にしている場合には要注意ということで。
で、年別アーカイブは静的生成することになったのでPerlのPluginを普通に使ってテンプレート書いた。利用した Plugin とテンプレートの概要は以下。
- ArchiveYear plugin for Movable Type
- ArchiveLoad plugin for Movable Type
- Archive Date Header Plugin :: Adam Kalsey
<MTArchiveYear order="descend"><MTArchiveYearIfEntries><MTArchiveLoad> <MTDateHeader><h3><$MTArchiveDate format="%B"$></h3></MTDateHeader> <ol> <MTEntries> <li><$MTEntryDate format="%b/%e" language="jp"$> − <a href="<$MTEntryPermalink archive_type="Individual"$>"><$MTEntryTitle encode_html="1"$></a></li> </MTEntries> </ol> </MTArchiveLoad></MTArchiveYearIfEntries></MTArchiveYear>
ただ、謎なのは ArchiveDateHeader Plugin は作成者のサイトで見ると、月別タイプのアーカイブでは年が変わるときにヘッダーとして書き出されるとなっているけど、このケースでは月がピックアップされていること。ソースを読めば分かるんだろうけど、ま、結果オーライと言うことで終了。
Trackback
まだトラックバックは寄せられていません。
Post a comment
[Plugin]前後の記事
- SpamLookupのKeyword Filterの修正 (4/15 21:26)
- ArchiveDateHeader Plugin の応用 (6/ 3 22:50)
- 年別のアーカイブインデックス作成 (6/ 1 22:54)
- カテゴリー内の前後のエントリーへのナビ(PHP) (5/26 22:08)
Comments
まだコメントは寄せられていません。