神戸の実家や、親しい方々向けに子供の成長記録をMovable Type(以下MTと略す)を使って公開しているのだが、この記事が今月で140件に達した。MTをはじめとするブログツールは育児日記や子供の成長記録をつけるにも便利なツールであるが、記事が増えるにつれ、過去の記事から特定の記事を探すのが面倒になってくることがあった。作成者でさえ面倒なのだから、訪問者が参考にしたい記事を探す場合は、もっと大変ではないだろうか。
このことから、そのブログでは1年ぐらい前から、ちょっとした小細工をおこなっている。
その小細工とは
- 記事のアドレス(パス)を「http://~/年/月/日.html」にする
- アーカイブリストに投稿日も明記する
こうすることにより、たとえば「1年前はこんな感じでした」のようなリンクを入れる場合、わざわざ過去の記事を探さなくても「http://~/06/01/22.html」のアドレス(パス)を指定するだけで、1年前の記事へのリンクが可能となるし、その日に記事がなかった場合でもアーカイブリストを見て1年前に近い日へのリンクをつけることができる。またアドレスを見るだけで記事が投稿された日がわかるので「これは生後何ヶ月目の話題」ということが直感的にわかる。
今日は、その小細工の方法を備忘録としてまとめておきたい。
最初から「日付アーカイブ」を使っていれば、ファイル名を変える必要はないのだが、MTの初期設定である「エントリーアーカイブ」のみで記事を構築している場合は、下記の方法で「日付アーカイブ」のようなことができる。
- 設定の確認
- 管理画面の設定画面に入り、右上あたりにある「詳細モードに切り替え」のリンクを開く
- 「基本モードに切り替え」になっている場合はこの項目は無視
- するとタブが5個に増えるので、この中から「公開」タブを開く
- 「公開の設定」という画面になるので、この画面の一番下にある「アーカイブ・マッピング」を確認する
- 「エントリーアーカイブ」にチェックがあるのを確認して「出力フォーマット」の選択肢を「カスタマイズする」に変更する
- そこで「%y/%m/%d」と入力する
- 初期設定のままだと「日付アーカイブ」はノーチェックになっているが、あえて、そのままでよい。そして「変更を保存」ボタンを押す
- 「日付アーカイブ」と「エントリーアーカイブ」を併用すると、同じ記事がサーバー上に2ヶ所(月別、カテゴリアーカイブを含めると3~4ヶ所)も作成され非効率である。従って「エントリーアーカイブ」と「日付アーカイブ」は併用しないことをお勧めしたい。
- エントリー(記事)の投稿
- 「新規エントリー」画面から普通に記事を投稿する
- これで再構築すると投稿した記事が「07/01/22.html」のように日付表示と同じアドレスが出力されるようになる
- 同じ日に違う内容の記事を複数、投稿したい場合は、投稿前に「新規エントリー」画面の下にある「画面の表示設定を変更」を開き、「カスタム」を選択後「出力ファイル名」にチェックを入れて「保存」ボタンを押す
- 記事を書き込んだ後、一番下の「出力ファイル名」の鍵のアイコンを開き「22-1」とか「22-gaisyoku」といったファイル名を入れて投稿する(拡張子は入れないこと)
- 同じ日に複数のエントリー投稿する場合は、同じファイル名にならないよう気をつける
- 過去のエントリー(記事)のファイル名を修正する
- 「エントリー」のリンクを開き、これまで投稿した記事のページを開き、「出力ファイル名」の鍵のアイコンを開いて、日付に変更する
- 過去の記事のエントリーへの移動は各記事の上部にある「前へ」「次へ」で移動する。また記事中にサイト内リンクがある場合はリンク先の変更もしておく
- すべて変更できれば、いったんFTPソフトでサーバーに入り、MTが出力したファイルを全て削除する
- そして再構築を行えば、MTがまさに「日記」に。アドレス(パス)がそのまま「年月日」になる
次に「アーカイブページ」に投稿日を出力する方法であるが、これはテンプレートを触るだけである。
管理画面のテンプレートから「アーカイブページ」を開き
<MTArchiveList>~</MTArchiveList>
の部分を下記のように書き換える
<MTArchiveList archive_type="Individual" sort_order="ascend">
<li><$MTArchiveDate format="%Y年%m月%d日"$>
<a href="<$MTArchiveLink$>"><$MTArchiveTitle$></a></li>
</MTArchiveList>
例では<MTArchiveList>タグに2つの属性をつけているが意味は下記の通りである。
- archive_type="Individual"
- エントリー(記事)のタイトルのリストアップを指示
- sort_order="ascend"
- 記事を投稿日が古い順番に並べ替える
また
<$MTArchiveDate format="%Y年%m月%d日"$>タグをつけることによりアーカイブリストに投稿日を出力させることができる。
こうするとアーカイブページはこのように表示される。これでどの記事がいつ投稿されたかがわかる。そして前述のファイル名を「http://~/年/月/日.html」にすることにより、このリストを元に関連記事のリンクをつけることが簡単になる
※当ブログではこのようなファイル名の付け方をしていません
ちなみにアーカイブリストを新しいものの順番にする場合は<MTArchiveList>タグのsort_order="ascend" を削除するだけでよい。
もちろんこのような構成は育児日記や成長記録に限らず、普通の日記でも利用できるので、参考にしていただければと思う。