MovableTypeの初期状態では、Individual Entry Archiveのナビゲーションはとても貧弱です。Blogに慣れた人なら、なんとなくOKなんでしょうが、そうでない方の場合、迷子になりやすかったり見やすくないと感じます。
そんなわけで私は自分のサイトでは、本文の横にその記事の所属しているカテゴリの記事タイトル一覧を表示させたいと思っていました。こんなことは誰でも思うことなので、ちょっとテンプレートをいじればすぐにできるもんだろうと思っていたのですが、さにあらず。ちょっとやそっといじったところでどうにもならず、いろいろ検索しました。
その結果いくつか同じようなことを考えた人のBlogにめぐり合えたのですが、最終的に一番参考にさせていただいた(というかほとんどそのまんま採用させていただいた)のが、花さんの87design weblog : 「This Category Entries」という記事です。
手順1:所属categoryのEntryリストをPHPファイルとして作成
↓
手順2:作成したPHPファイルを新しいアーカイブテンプレートとして保存しリビルド
↓
手順3:作成したPHPファイルをIndividual Entry Archiveでインクルード
[Templateの編集]をクリック
↓
[新しいアーカイブ・テンプレートを作る]をクリック
↓
以下のソースをコピー&ペーストし、任意の名前を[テンプレートの名前]に入力して[保存]ボタンをクリック
(私は「this category entries」という名前にしました)
<div class="sidetitle"> <$MTCategoryDescription$> </div> <div class="side"> <MTEntries category=<$MTCategoryLabel$> <a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a><br /> </MTEntries> </div>
(現状では該当Entryのタイトルはスタイルを変更するようにしているので、実際にはもうちょっと記述があるのですが、その部分はまた別途公開いたします。)
ここまでの操作で[アーカイブに関連したテンプレート]に「this category entries」というテンプレートが一つ増えます。ここまではテンプレートをいじったことのある方ならめずらしくない手順ですが、次が私には馴染みのない作業でした。[BLOGの設定]をクリック
↓
[アーカイブの設定]をクリック
↓
[新しく追加]ボタンをクリック
↓
[アーカイブの設定]ミニウィンドウ−[アーカイブの種類]欄で「Category」を選択、[テンプレート]欄で先に作成した「this category entries」を選択
↓
[アーカイブの設定]ミニウィンドウ−[追加]ボタンをクリック
↓
[アーカイブの設定]−[Category]欄に「this category entries」が追加されていることを確認し、[アーカイブ・ファイルのテンプレート ]欄に任意のファイル名を入力して[保存]ボタンをクリック
(私は「list_<$MTCategoryLabel$>.php」としました。)
↓
サイトのRebuildを実行
これで、カテゴリごとのエントリタイトルだけが表示されたPHPファイルが、カテゴリの数だけ作られているはずなので、FTPで確認しましょう。
FTPで確認しても「list_<$MTCategoryLabel$>.php」に該当するファイルができていなければ先に進んでも無駄ですからここまでの手順をよく確認しましょう。PHPファイルが無事できていればあと少しです。
Individual Entry Archiveの、カテゴリごとのエントリリストを表示させたい箇所に、以下のソースをコピー&貼り付けしてから、サイトのRebuildを実行
<? include "ファイルパス/list_<MTEntryCategory>.php"; ?>
これで見事完成です。
ところで、87design weblog : 「This Category Entries (easy)」では、同じことを「MTTagInvoke」なるプラグインで実装する方法が紹介されています。
今回ご紹介したアーカイブPHPのインクルードよりもはるかに簡単そうです。
簡単にできるものをわざわざ頑張る必要もないでしょうから、PHP化していない方などはありがたくプラグインを使わせていただくといいんじゃないかと思います。
- Newer:スラッシュ(/)が入力できない
- Older:段落罫線で切り取り線を作る