Home > Internet > Movabletype > 季節ごとのアーカイブ

季節ごとのアーカイブ

mixiのMTコミュで、月別アーカイブの部分を季節別アーカイブへと変えたいという質問がありました。
これは、その要望をプラグインを使い実現する手順です。
このカスタマイズはPerl版プラグインを多用します。その為ダイナミック・パブリッシングでは動作しません。

アイデア的には年別アーカイブの作り方が何か所かで公開されてますので、それを元に作ります。

先日 Movable Type 3.2 の Archive File Path 形式のフォーマットと実際の出力フォーマットの早見表にて、デフォルトでの URI 設計について触れました。 エントリアーカイブの場合は yyyy/mm/entry_basename.html 、日別アーカイブの場合は yyyy/mm/dd/index.html 、月別アーカイブの場合は yyyy/mm/index.html のようになっています。 しかし、 yyyy/index.html のようなフォーマットで生成される年別アーカイブはありません。

MovableType(ムーバブルタイプ)のアーカイブには個別エントリ、日別、週別と月別アーカイブがありますが、年別アーカイブなんてものはありません。 年単位のページなんて作っても、あまり意味がないからなんでしょうね。そんな年別アーカイブですが、わたしは設置してみました。自己満足のために作ったといってもいいかも、です。

上記サイトを参考に、年別アーカイブを作成できたら、後はその中で特定の月のエントリーのみ表示すれば、季節別アーカイブを作成できます。

いくつか候補があって検討したのですが、今回は DateTags というプラグインを使います。
このプラグインはアーカイブを解凍すると2つのプラグインが入っています。
DateTags と MoreDateTags です。MoreDateTags は月の満ち欠け・アメリカの休日・アストロサイン・誕生石を表示するものなので、今回はインストール必要はないし、たぶんこれからも使うことはなさそうです。
このプラグインでは「Date::Calc」というPerlモジュールが必要になります。ただし、その機能を使わないタグならば使えそうなことも書いてあるので、モジュールを入れなくても平気かもしれないですが。

特定の月のみ処理するタグは2種類存在します。
MTIfMonths と MTDateRange です。MTIfDateWithin も、もしかしたら使用できたかもしれません。
MTIfMonths は <MTIfMonths months="1,2,3">~</MTIfMonths> とする事で、指定月の時のみ内部を実行するコンテナタグです。今回はこれを使っています。

ちなみに MTDateRange は start と end そして start_adjust か end_adjust を使い、ある日から別な日まで処理する・もしくはある日からN日後まで処理するタグで、これは別な使い方が出来そうな気がします。似たようなタグで MTDateLoop というのも使えるみたいです。

年別アーカイブのテンプレートに MTIfMonths を追加すれば、季節別のテンプレートの完成です。

MTEntriesで囲まれた部分を以下のように変えます。

<MTArchiveYear order="descend"><MTArchiveYearIfEntries><MTArchiveLoad><MTDateHeader><MTEntries sort_by="created_on" sort_order="ascend"><MTIfMonths months="1,2,3"> ~</MTIfMonths></MTEntries></MTDateHeader></MTArchiveLoad></MTArchiveYearIfEntries></MTArchiveYear>

緑部分は、年別アーカイブで使用しているコードです。季節別にする為に追加するのは青文字部分のみです。

次は作成したテンプレートをアーカイブにマップします。
設定>公開で、月別アーカイブを4つ追加作成し、それぞれに作ったテンプレートを割り当てます。

テンプレートの出力フォーマットの部分は例としてアーカイブ以下に年のフォルダを作成し、季節名(winterなど)のファイル名で作成する事としました。ご自分の気に入るように変更してください。
冬用を例に出すと
<$MTArchiveDate format="%Y"$>/winter<$MTBlogFileExtension$>
となります。
最初は季節名の部分もプラグインを使って処理するつもりだったのですが、ちょうど良いプラグインも無く複雑になりそうなので、シンプルに4つのアーカイブを作成するようにしました。

これで、再構築すれば季節ごとのアーカイブが出来上がります。

ping a Trackback

TrackBack URL for this entry.(1)

Comments:(2)

arata`s user-pic TypeKeyAuthed arata said February 18, 2007 12:53 AM | ReplyThis!

これは素敵なカスタマイズですね。
日記テーマブログとか、旅ブログとか、そういった時にも利用出来ますよね。
素晴らしいですね。

oscar`s user-pic oscar replied for arata's comment February 18, 2007 10:20 AM | ReplyThis!

こんにちは。
>日記テーマブログとか、旅ブログとか、
質問者がどういうのをイメージしているかは、伝わったんですが、通常のサイトじゃあんまり使わないパターンですよね。

今回ナビゲーション関連のカスタマイズ載ってないのも、そこら辺が関係してます。
もしかして、2007Winterの前は2006Winterに繋がるのかな?とか思えるんですよね。

まぁ、実際ダイナミック・パブリッシング対応じゃないんで、ここじゃ関係ない話なんですが。

スクリプトの読み込みが完了していません。

Sign in Sign in Sign in

メールフォーム(Javascriptを使用していません)や、twitter.pngTwitter経由のCommentでもReplyいたします。ただし返信はブログのコメントとして行う事もあります。

Comment Form

QuickTagsHere

EmoticonHere

(入力しない場合「Anonymous」で代替されます)
(公開はされませんが、Gravatarアイコンの取得や、Comment Subscribeの送信先アドレスとして使われます)
(入力すると、コメント表示でユーザー名にリンクが貼られます)
(この情報は、JavascriptによりCookieに保存されます。)

NotifyMail Powered by Comment Subscribe

はてブコメント:

Home > Internet > Movabletype > 季節ごとのアーカイブ

MT5Techniques

MT5Techniques

2冊目の共著「Movable Type 5 実践テクニック」(シックスアパート監修)が出版されました。(ソフトバンク クリエイティブ刊)

検索
(5)
(6)

別ページに遷移します。

Powered by Hyper Estraier

Feeds
Link Status
In One

なかのひと

位置情報ブログパーツ「なかのひと」

Links
Powered By

Return to page top