Movable Type4.23 日付カスタムフィールドによる月別アーカイブの作成
どなたかお助けください。
<やりたいこと>
月別アーカイブを作成日(公開日)ではなく、ブログ記事作成画面に追加した日付カスタムフィールドを基準とした月別アーカイブをつくりたい。
イベント情報のページを作っています。
イベント開催日を日付カスタムフィールド<$mt:cfeventday$>により入力(出力)するようにしています。当然記事作成時とイベントの開催日は異なります。
そこで、"月別イベント一覧"という月別アーカイブを作り、3月のイベント一覧、2月のイベント一覧という風に表示したいと思っています。
<やってみたこと>
記事のアーカイブマッピングをカスタムにて以下のようにしたところ
<$mt:cfeventday format="%Y"$>/<$mt:cfeventday format="%m"$>/<$mt:cfeventday format="%d"$><MTEntryID pad="1">.html
2009
├02
├100001.html(2月10日に行われるイベント記事)
├200002.html(2月20日に行われるイベント記事)
├03
├100003.html(3月10日に行われるイベント記事)
├200004.html(3月20日に行われるイベント記事)
という風に、ファイル保存形式は見た目上、理想通りイベント開催月(開催日)ごとに保存されました。
あとは通常通り、月別アーカイブテンプレートを作成し、出力するだけと思いやってみたのですが、実際に出力されるのは、いつも通りの記事作成日(公開日)を基準としたくくりになってしまいます。
上記例でいくと、記事作成を2月1日に4つ全て行ったとしたら、全て2月のイベントとして表示されます。
また月別アーカイブリストは
├2009年2月(4)
├2009年3月(0)
となります。
これらを日付カスタムフィールドで入力した日付を基準とした(実際の保存状態をもとに?)月別イベントアーカイブとして表示させたいのです。また、月別アーカイブリストも同様に
├2009年2月(2)
├2009年3月(2)
のように表示させたいです。
以下が月別アーカイブテンプレートの内容です。
<p>3月開催予定イベント一覧</p>
<mt:Entries sort_by="field:cfevntdaydasename" sort_order="ascend">
<$mt:cfeventday$><$mt:entrytitle$>
</mt:Entries>
以下が月別アーカイブリストのテンプレート内容です。
<mt:ArchiveList archive_type="Monthly">
<mt:ArchiveListHeader><span class="dir">▼月別イベント一覧</span><ul></mt:ArchiveListHeader>
<li><a href="<$mt:ArchiveLink$>"><$mt:ArchiveTitle$> (<$mt:ArchiveCount$>)</a></li>
<mt:ArchiveListFooter></ul></mt:ArchiveListFooter></mt:ArchiveList>
どうでしょうか。
何卒アドバイスよろしくお願いします。
お礼
回答ありがとうございます!