« アーカイブファイルの出力パス   カテゴリアーカイブのパンくずリスト »

年別のアーカイブインデックス作成

June 1, 2005 22:54  [ Dynamic Pub., ]

年別のアーカイブリストの作り方はChitatopops: 年ごとのアーカイブJunkline - MT の過去ログリンク表示を nDiary (ごにょり済み)風にで紹介されている。

で、それらを参考にしつつ

  1. MT 管理画面の「テンプレート」 -> 「新しいアーカイブ・テンプレートを作る」
  2. テンプレートの名前 : 年別アーカイブ
  3. 適当に作って保存
  4. 次に「ウェブログの設定」 -> 「アーカイブの設定」で「新しく、テンプレートとアーカイブを関連付ける。」
  5. アーカイブの種類: 月別 、テンプレート: 年別アーカイブを選択し、「追加」
  6. アーカイブ・ファイルのテンプレート: <$MTArchiveDate format="%Y/index.php"$>(優先するテンプレートは月別アーカイブで使っているもののまま)
  7. 「変更を保存」

とやってみた。ところがなぜか /archive/2005/index.php などには月別アーカイブのテンプレートで表示されてしまって困った。月別アーカイブでは<$MTArchiveDate format="%Y/%m/index.php"$>を設定してたのだが、どうもこれが<$MTArchiveDate format="%Y/index.php"$>のパスでも優先されてしまうらしい。年別アーカイブのファイル名をindex.php以外にすると正常に表示される。

で、しょうがないので英語サイトを含めて検索してみたけどMTに関するいい記載は見つからず。しばらく格闘した後、ふと思いついて年別アーカイブを静的に生成するようにしてみた。・・・あっさり直った orz

アーカイブを全部 Dynamic Publishing にしている場合には要注意ということで。

で、年別アーカイブは静的生成することになったのでPerlのPluginを普通に使ってテンプレート書いた。利用した Plugin とテンプレートの概要は以下。

<MTArchiveYear order="descend"><MTArchiveYearIfEntries><MTArchiveLoad>
<MTDateHeader><h3><$MTArchiveDate format="%B"$></h3></MTDateHeader>
<ol>
<MTEntries>
<li><$MTEntryDate format="%b/%e" language="jp"$>&nbsp;−&nbsp;<a href="<$MTEntryPermalink archive_type="Individual"$>"><$MTEntryTitle encode_html="1"$></a></li>
</MTEntries>
</ol>
</MTArchiveLoad></MTArchiveYearIfEntries></MTArchiveYear>

ただ、謎なのは ArchiveDateHeader Plugin は作成者のサイトで見ると、月別タイプのアーカイブでは年が変わるときにヘッダーとして書き出されるとなっているけど、このケースでは月がピックアップされていること。ソースを読めば分かるんだろうけど、ま、結果オーライと言うことで終了。

Trackback


まだトラックバックは寄せられていません。

Comments

まだコメントは寄せられていません。

Post a comment

コメント投稿フォーム

情報をブラウザに保存しますか ?

コメントにHTMLタグは使えません。

 

[Plugin]前後の記事

« アーカイブファイルの出力パス   カテゴリアーカイブのパンくずリスト »

XREAAD