Movable Type 備忘録
年別アーカイブを追加する
- Prev Page: プレビュー画面カスタマイズ
- Next Page: カンタンに実体参照文字に変換する
MovableType(ムーバブルタイプ)のアーカイブには個別エントリ、日別、週別と月別アーカイブがありますが、年別アーカイブなんてものはありません。
年単位のページなんて作っても、あまり意味がないからなんでしょうね。
そんな年別アーカイブですが、わたしは設置してみました。
自己満足のために作ったといってもいいかも、です。
まずはサンプルですね。
2010年
わたしのサイトの月別アーカイブは、こちらのスケジュール表を作るを参考にカスタマイズしています。 年別アーカイブは個々の月別アーカイブを、こちらの長くなったページを分割表示するを使ってページ分割(月別に分割)したものです。
年別アーカイブはArchiveLoadプラグインとArchiveYearプラグインを併用して作成します。
これらのプラグインはMovableType(ムーバブルタイプ) 3.3でも使用できました。
ArchiveLoadプラグインは、全エントリを参照できるようにするためのプラグインです。 ArchiveYearプラグインは、年別アーカイブ・ページを作るためのプラグインです。 これ以上のことは情報不足で分かりません。
▼ArchiveLoadプラグインの入手はこちらから▼
archiveload.pl
▼ArchiveYearプラグインの入手はこちらから▼
archiveyear.pl
上記プラグインはいずれも配布を終了しちゃっているので、わたしのサイトからお持ち帰りください。
プラグインをインストールします
まずは、いつものように各プラグインをインストールします。
MTPaginateプラグインを、こちらの長くなったページを分割表示する参考にインストールを済ませてください。
ArchiveLoad、ArchiveYearプラグインをインストールします。
上記URLから各プラグインをダウンロードして、サーバーにアップロードしてください。
アップロード先はいつものmt/plugins/ディレクトリの中です。
年別アーカイブ・テンプレートを作成します
次に年別アーカイブ用のテンプレートを新規作成します。
MovableType(ムーバブルタイプ)の管理画面からブログを選択してテンプレート一覧を表示します。 そして、画面上にある「アーカイブ」をクリックするとアーカイブ一覧が表示されます。
右上にある「テンプレートを新規作成」をクリックしてください。 設定内容は以下の通りです。
- テンプレート名:
年別アーカイブの名前になります。任意の名前で問題ありません。 - このテンプレートにリンクするファイル:
ここは未記入でいいです。 - テンプレートの内容:
年別アーカイブ・テンプレートを貼り付けます。 月別アーカイブ・テンプレートをベースにして、年別アーカイブ・テンプレートを作成するとカンタンにできます。 本文にあたるところを、以下のXHTMLと差し替えます。
以下はわたしのサイトで使っている、年別アーカイブの本文にあたるところを抜粋したXHTMLです。
<div id="content"> <MTPaginate> <div class="content-navi"> <dl> <MTArchiveYearPrevious><dt>Before One Year: <a href="<$MTBlogArchiveURL$><$MTArchiveDate format="%Y/"$>"><$MTArchiveDate format="%Y"$></a></dt></MTArchiveYearPrevious> <MTArchiveYearNext><dt>One Year Later: <a href="<$MTBlogArchiveURL$><$MTArchiveDate format="%Y/"$>"><$MTArchiveDate format="%Y"$></a></dt></MTArchiveYearNext> </dl> <MTPaginateIfMultiplePages> <dt style="text-align: center;"> <MTPaginateIfPreviousPage_><a href="<$MTPaginatePreviousPageLink$>">« [Prev]</a></MTPaginateIfPreviousPage_> <$MTPaginateNavigator format="%d" separator=" " format_all="All Archives" place_all="before"> <MTPaginateIfNextPage_><a href="<$MTPaginateNextPageLink$>">[Next] »</a></MTPaginateIfNextPage_> </dt> </MTPaginateIfMultiplePages> </div> <div class="entry"> <MTPaginateContent max_sections="1" section_start="<div id="content">"> <MTArchiveYear order="ascend"> <MTArchiveYearIfEntries> <MTArchiveLoad> <h2 class="archive-header"><$MTArchiveDate language='en' format='%B, %Y'$></h2> <table summary="<$MTArchiveDate language='en' format='%B, %Y'$>" cellspacing="0" cellpadding="2" class="calenar"> <tr> <th colspan="2">Date</th> <th>Posted Entry</th> </tr> <MTCalendar month="this"> <MTCalendarIfBlank> <MTElse> <tr> <td class="day"><$MTCalendarDate language="en" format="%e"$></td> <td class="week"><$MTCalendarDate format="%a"$></td> <td class="summary"> <MTCalendarIfEntries> <ul> <MTEntries sort_order="ascend"> <li><h3><a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a></h3></li> </MTEntries> </ul> </MTCalendarIfEntries> </td> </tr> </MTElse> </MTCalendarIfBlank> </MTCalendar> </table> <$MTPaginateSectionBreak$> </MTArchiveLoad> </MTArchiveYearIfEntries> </MTArchiveYear> </MTPaginateContent> </div><!-- entry --> </MTPaginate> </div><!-- content -->上記XHTMLを参考に、各自で用意した年別アーカイブ・テンプレートの本文をカスタマイズします。 一通り入力したら保存します。
月別アーカイブにマッピングします
各自で作成した、年別アーカイブを月別アーカイブと関連付けします。
MovableType(ムーバブルタイプ)の管理画面からブログを選択して、左横にある「設定」をクリックします。 そして、画面上にある「公開」をクリックすると、画面下の方にアーカイブ・マッピング一覧が表示されます。
「マッピングを新規作成」をクリックしてください。 設定内容は以下の通りです。
- アーカイブの種類:
ここでは月別を選択します。 - テンプレート:
先ほど作った年別アーカイブを選択します。
一通り選択したら、右横にある「追加」ボタンをクリックして年別アーカイブ追加すると、リスト中に年別アーカイブが追加されます。
年別アーカイブのドロップダウンリストから「カスタマイズする」を選択して、出力フォーマットを以下のように変更してください。
%y/%i
上記フォーマットは、たとえば、2006年の場合にはアーカイブディレクトリの中に"2006/index.php"というように出力されます。 出力フォーマットについては、こちらのアーカイブ・ファイル名定義を参考にしてください。
一通り変更が終わったら、画面下にある「変更を保存」ボタンクリックで保存して、月別アーカイブを再構築すると年別アーカイブのファイルが新規作成されます。
Trackback Pings(0)
No trackbacks found.




こんにちは!
MTについてとても参考にさせていただいています。
年別アーカイブを実現しようとしたのですが、うまくいきません。。
何か設定が間違っているのか…MT4.26を使用しているので
プラグインが対応していないことが原因かとも思うのですが
こちらで紹介されているものはMT4でも実現可能なのでしょうか?
もしMT4で年別アーカイブを実現する方法をご存知でしたらご教授いただければと思うのですが…
よろしくお願いいたします。
すみません、先ほども質問してしまったのですがもしダブっていたら削除してください。
すみません。。。先ほど質問させてもらったものです。
自力で解決できそうです。お騒がせいたしました。
また何かありましたらご相談させてください。