アルファサード株式会社 代表取締役 野田 純生のブログ


MovableTypeでカテゴリーアーカイブを出力“しない”プラグイン。


公開日 : 2007-03-12 08:55:09


僕のMacにはMovableTypeがインストールされていてpluginsフォルダにはとにかくたくさんのプラグインが放り込まれている。
そのほとんどが個別の案件用に書いたもの、ちょっとした思いつきで試しに書いたもの。
個別案件用に書いたものは公開するレベルにもないし他にニーズがあるかどうかもわからないけれど他の仕事の際にも「あ、あれ使おう」となったらそれはきっと他にもニーズがあるものなんだろう。

今回のネタ? はタイトル通り「MTのカテゴリーアーカイブを出力しないプラグイン」。

「ブログ」でなく「サイト制作」にMTを使っている場合、下手な設計をするとBlogがやたら増えてしまう。ナビゲーションのバリエーションとかカテゴリーアーカイブのデザインのパターン数だけBlogを用意するのだ。これってメンテナンス性も悪いしそもそも制作の時点で効率が悪い。

  • 「何でこんなにBlogの数が多いんだ?」
  • 「ここのカテゴリーだけ、インデックスのページをこんな風にしたいんですよ」
  • 「じゃぁそうすれば?」
  • 「このBlogのカテゴリーアーカイブのテンプレートとパターンが違うんで...」

あるいは

  • 「何でカテゴリーアーカイブを使わずにインデックスページまでいちいち『エントリー』として登録してるんだ? 何この『出力ファイル名』が『index』って」
  • 「カテゴリーごとにインデックスページの項目がバラバラなんですよ」
  • 「Blog使う意味ないじゃん!」

う〜ん、言葉で書くとニュアンス伝わりにくいような気がする。とにかくそんな会話の中で『こんな設計あり得んやろ!』ということで書いた。

管理画面上の表示

  • 管理画面のカテゴリーのところに、画像のようにチェックボックスが追加される
  • チェックを入れたカテゴリーは再構築されない
  • つまり、特定のカテゴリーのインデックスページだけエントリーで代用できる

これでどうでしょう? いやいやそれでも、

  • 「『パンくずリスト』がおかしくなります...(例:Junnama Online > MovebleType > MovebleType )」
  • 「ここのページ、エントリーのパターンとはちょっと違うんですよ...」

とか必ず言う奴がいるんだなぁ。はいはい、分かりました。

<MTEntryIfIndex>
# 出力ファイル名が「index」の場合のみ出力される
<MTElse>
# それ以外の場合出力される
</MTElse>
</MTEntryIfIndex>

こんな条件タグも作りましたから。これで宜しいか? そうか、そりゃ良かった。

実装上の都合で、「カテゴリーの説明(description)」にコメント(<!--DoNotRebuild-->)が入るので、このコメントを出力したくない時は

<$MTCategoryDescription CatIndexKiller="1"$>

としてください。



このブログを書いている人
野田純生の写真
野田 純生 (のだ すみお)

大阪府出身。ウェブアクセシビリティエバンジェリスト。 アルファサード株式会社の創業者であり、現役のプログラマ。経営理念は「テクノロジーによって顧客とパートナーに寄り添い、ウェブを良くする」。 プロフィール詳細へ