MT標準のカレンダーはシステムメニューで再構築しないと当月表示にならない。ほっておくと、最後に再構築したときの月のカレンダーが表示され続ける。
ちなみにカレンダーをカスタマイズする方法はいろいろあるようだが、そのどれもが結構ややこしい。そうした中、以下のものが自分のイメージするところに合っていそうなので、その方法をまとめておく。
http://taeko.w-museum.com/wing/200810281347.html
・ 最新記事が含まれる月ではなく、現在の月カレンダーを表示
・ ページは動かず、iframeによってカレンダー部分のみが移動する
1. インデックステンプレートの作成
[デザイン]→[テンプレート]→[インデックステンプレート]→[インデックステンプレートを作成]
テンプレート名:_カレンダー
出力ファイル名:calendar.html
テンプレートの種類:カスタムインデックステンプレート
公開:スタティック(規定)
2. アーカイブテンプレートの作成
[デザイン]→[テンプレート]→[アーカイブテンプレート]→[アーカイブテンプレートを作成:ブログ記事リスト]
テンプレート名:_月移動カレンダー
テンプレートを保存すると、テンプレートの設定に「アーカイブマッピング」の項目が表示されるので、[新しいアーカイブマッピングを作成]をクリック。
種類:月別 → 追加
パス:calendar/<$MTArchiveDate format="%Y_%m"$>.html
3. ウィジェットの作成
[デザイン]→[ウィジェット]→[ウィジェットテンプレート]→[ウィジェットテンプレートを作成]
ウィジェット名:_カレンダー月移動
4. ウィジェットのセット
「_カレンダー月移動」をサイドバー等に配置する。
【補足】
このままだとカレンダーをクリックしても、該当日最終記事が1件しか表示されない。つまり該当日最終記事へのリンクとなる。
該当日の記事をすべて表示させるには「月移動カレンダー」内を以下のように変更する。ただし、これにより再構築の対象となるファイルが増えるので注意が必要。
<MTEntries><MTDateHeader>
<a href="<$MTEntryLink archive_type="Daily"$>" title="</MTDateHeader>[<$MTEntryTitle$>]<MTDateFooter>" target="_top"><$MTCalendarDay$></a>
</MTDateFooter></MTEntries>
【参考】
Ajax 月送りカレンダー(MT4版)
土・日・休日、当日表示機能もあるのだが、デフォルト表示されるのは最終記事が含まれる月のカレンダー。記事がないと現在月のカレンダーは表示されず、最終記事月のカレンダーが表示され続けることになる。カスタマイズも簡単にはいかない。
コメントする