アーカイブテンプレート作成方法
Movable Type で月別・週別・日別のアーカイブページを作成する場合、デフォルトで使用されるアーカイブテンプレートは「日付アーカイブテンプレート」です。つまり、ひとつのテンプレートで3種類のアーカイブページを賄う設定になっています。
ですが、それぞれのアーカイブページで異なる動作を行いたい場合、例えば、月別アーカイブページでは「×年×月のページ」、日別アーカイブページでは「×月×日のページ」というタイトルを振りたい時、同じテンプレートを使っているとMTタグのみでこのような設定を行うことはできません(多分)。
ここでは、日別・週別アーカイブページに対し、新しく日別アーカイブテンプレート/週別アーカイブテンプレートを作成・対応させるカスタマイズを紹介します。これを行うことでアーカイブページとテンプレートの対応(アーカイブマッピング)は下記のようになります。
アーカイブの種類 | 対応テンプレート |
---|---|
月別アーカイブページ | 日付アーカイブテンプレート |
週別アーカイブページ | |
日別アーカイブページ |
アーカイブの種類 | 対応テンプレート |
---|---|
月別アーカイブページ | 日付アーカイブテンプレート |
週別アーカイブページ | 週別アーカイブテンプレート |
日別アーカイブページ | 日別アーカイブテンプレート |
なお、これ以外の用途で新しくアーカイブテンプレートを作成する場合にも参考になると思います。
1.テンプレートの作成
まず日別用アーカイブの元となる日付アーカイブテンプレートをテキストコピーします。
管理メニューの「テンプレート」→「アーカイブ」→「日付アーカイブ」の順にクリックし、テンプレートの内容をコピーします。
次に管理メニューの「テンプレート」→「アーカイブ」→「テンプレートを新規作成」の順にクリックし、次のページで下記の内容を設定します。
- テンプレート名:日別アーカイブ
- このテンプレートにリンクするファイル:(空白)
- テンプレートの内容:先ほどコピーした内容をペースト
設定が完了したら保存します。週別アーカイブテンプレートも同じ要領で作成し、「テンプレート名」を「週別アーカイブ」とします。
2.アーカイブマッピングの変更
「アーカイブマッピング」とは冒頭の説明の通り、あるアーカイブページとアーカイブテンプレートの対応です。ここではアーカイブページを生成する際、どのテンプレートを使用するかの設定を行います。
管理メニューの「設定」→「公開」→一番下の「アーカイブマッピング」欄に進みます。右側にある「マッピングを新規作成」をクリックすると画像のような設定画面が表示されますので、プルダウンメニューより下記のように選択し、「追加」をクリックします。画像は日別アーカイブのマッピング例です。 |
- 日別の場合
- アーカイブの種類:日別 テンプレート:日別アーカイブ
- 週別の場合
- アーカイブの種類:週別 テンプレート:週別アーカイブ
ということで、画像のように新しく作ったアーカイブマッピングだけ残っている状態になればOKです。 |
3.再構築を有効にする
上の画像の一番左にあるチェックボックスは、再構築対象にする・しないを決めるためのものです。上の画像では日別アーカイブは再構築されますが、週別アーカイブは再構築されない状態を示しています。Movable Type のデフォルト状態では日別・週別にはチェックされていないので、再構築が必要なアーカイブにチェックをつけて保存します。
これで全ての設定は完了です。
公開テンプレートをお使い頂いた方からよく「再構築でエラーになります」という質問を頂くのですが、公開テンプレートのメインページ(や他のアーカイブページ)にはカレンダーを表示するようにしており、カレンダーを表示するタグの中に
<a href="<$MTEntryLink archive_type="Daily"$>">
という設定があります。これはカレンダーの日付のリンクで、リンク先として日別アーカイブページを archive_type 属性で設定しています。この設定は日別アーカイブページの再構築を有効な状態にしておかないと再構築時に
というエラーになります。再構築を有効にするための設定がこの「アーカイブマッピング」の日別欄のチェックです。
デフォルトではここがチェックされていないためエラーになる訳です。
4.公開テンプレート修正例
公開テンプレートでは日付アーカイブページに
<div class="sidetitle">
The list of "<$MTArchiveTitle$>"
</div>
<div class="side">
<MTEntries>
<a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a><br />
</MTEntries>
</div>
という、該当アーカイブページの一覧を表示するサイドメニューを設置しています。
月別アーカイブでは青色の生成されるタイトル部分が
The list of "2005年10月"
となりますが、日別アーカイブでは
The list of "2005年10月20日"
と、やや長くなります。
日付アーカイブを共用しているとこの部分は変更できないのですが、独立させた日別アーカイブテンプレートのみ、例えば
<div class="sidetitle">
The List of "<$MTArchiveDate format="%b"$>月<$MTArchiveDate format="%d"$>日"
</div>
と変更することで、日別アーカイブページの該当部分を
The list of "10月20日"
という表示に変更することが可能になります。
- Movable Typeのコンテンツデータで公開日を比較する方法
- MT7テンプレート作成画面に表示される「コンテンツタイプ」「コンテンツフィールド」の意味
- Movable Typeでテンプレートの動作を簡単に確認する方法
- Movable Typeでスマホサイト用トップページをPCサイト用トップページと異なるURLにする方法
- Movable TypeでCSSファイルやJavaScriptファイルなどを管理するためのTips
- Movable Type 4.2 テンプレートセット(コミュニティ用)修正
- Movable Type 4.2 テンプレートセット(コミュニティブログ対応版)修正
- Movable Type 4.2 テンプレートセット(コミュニティブログ対応版)
- Movable Type 4.2 配布テンプレートセット修正(カテゴリーアーカイブ・コメント完了)
- Movable Type 4.2 テンプレートセット修正(アーカイブインデックス追加等)
- Movable Type 4.2 テンプレートセット修正
- Movable Type 4.1 テンプレートセット修正
- 「iPhoneテンプレートfor MT」 by cremadesign
- Movable Type 4.1 テンプレートセット(スタイル対応版)
- 小粋空間テンプレートセットのカラムレイアウト変更方法
≫ Movable Type で長年日記 from nlog(n)
Movable Type の日付別アーカイブを長年日記にする。... [続きを読む]
こんにちは。
当方のBlogでは、日別と月別のテンプレートを1つにして、部分的に出力が異なるところはプラグインで処理を分けるようにしています。
後日、そのプラグインを公開したいと思います。
なお、日別と個別のアーカイブページを出力すると、ハードディスクの容量を消費してしまうのがデメリットです。
日別アーカイブページはアクセスされることが少ないので、ダイナミックパブリッシングで出力するなどして、ハードディスクを消費しないようにする方が良いと思います。
>壱さん
こんばんは。
処理を分けるというアイデアはありましたが技がありませんでした(笑)。
プラグイン楽しみにしています。
アドバイスも併せてありがとうございます。
たしかにレンタルサーバでは容量は重要な要素ですね。
うちは自宅サーバでディスクがジャブジャブなもので…。
あけましておめでとうございます。
いつもお世話になっています。
今年もよろしくお願いします。
さてさっそくですが,
普段自分はブラウザにIEを使用しているのですが,閲覧して下る方が結構FireFoxをお使いの方が見えるので一度自分もFireFoxで見てみました。
するとアーカイブのページの表示がおかしく,また田のページでも折りたたみのCategoriesだけがおかしいのです。
いろいろさわってみましたが,全くわかりません。
新年早々申し訳ありませんが,ご教示いただければ幸いです。
よろしくお願い申し上げます。
>dotabatapapaさん
こんばんは。
ご質問の件ですが、ページのソースを拝見させていただいたところ中央カラムに冗長なデータがあるように思われます(アーカイブリストの後方にサイドバーに表示すべきデータがあります)。
またCategoriesの折りたたみがおかしい件につきましては、具体的なページをお知らせください(いくつか拝見させて頂いた限りでは正常に表示されていました)。折りたたみマークが表示されないページは、単に折りたたみの設定がされていないだけのようです。
以上です。
それではよろしくお願いいたします。
さっそく教えていただき,有り難うございます。
恐縮です。
お言葉に甘えます。
FireFoxでみると,「Archives」と「Search」のページの表示がおかしくなります。全てのカラムが白くなっていません。
また,FireFoxで表示すると,全てのページで右のカラムにある「Categories」の折りたたみができません。(というより表示されません。)
ご指摘いただいたようにIEでは全く問題ないので困っています。
よろしくお願い申し上げます。
>dotabatapapaさん
こんばんは。
ご質問の件ですが、一つ目は中央カラムで使用されている center タグ(2ペア使われていますが前半のタグ)を一旦削除すれば直ります。多分挿入位置が良くない(きれいに入れ子になっていない)と思われます。
二つ目はカテゴリーリストの折りたたみ指定で
FoldNavigation('Category','on',false);
となっている部分の Category の「C」を「c」と小文字にすれば直ると思います。
以上です。
それではよろしくお願い致します。
お世話になりっぱなしで申し訳ありません。
教えていただいたとおりにするとちゃんと表示できました。
本当に有り難うございました。
今後ともよろしくお願い申し上げます。
>dotabatapapaさん
こんばんは。
ご連絡ありがとうございました。
なおったようで良かったです。
ではでは!