Movable Type でカテゴリ同士の相互リンクを貼る方法
目次
Movable Type でカテゴリ同士の相互リンクを貼る方法
Movable Type のカテゴリアーカイブにおいて、そのブログ内のカテゴリ同士で相互リンクを貼る方法を紹介します。
このカスタマイズでは「SpecificCategory」という特定のカテゴリのコンテキストをセットするプラグインを使いますので、あらかじめインストールしておいてください。
さて、ブログに下記のようなカテゴリがあったとします。
- MTテンプレート
- MTプラグイン
- 日記
この中の2つを下記のように相互リンクさせます。
- MTテンプレート <=> MTプラグイン
- MTプラグイン <=> MTテンプレート
- 日記
完成したテンプレート
完成したテンプレ−トは以下のとおりです。なお、カテゴリアーカイブでの利用を前提としています。
解説
順番に解説していきます。
まず、現在のブログIDとカテゴリ名を変数にセットします。
- ブログID = blog_id
- カテゴリ名 = current_label
次に相互リンクの関係をハッシュ変数interlinkageにセットします。
例えば、「MTテンプレート」のカテゴリページには「MTプラグイン」カテゴリへのリンクを貼る場合は、ハッシュ変数interlinkageのキーに「MTテンプレート」を、値に「MTプラグイン」をセットします。このセットは一方通行で構いません(MTプラグイン => MTテンプレートの関係は不要)。
作成したハッシュ変数interlinkageについて、一度ループを回して、逆方向の関係も自動でセットします。ハッシュ変数interlinkage自身のキーに値を、値にキーをセットします。
そして、ハッシュ変数interlinkageから、現在のカテゴリ名をキーとする値を取得し、変数interlinkage_labelにセットします。つまり、この変数interlinkage_labelが現在のカテゴリの相互リンク先のカテゴリ名になります。
変数interlinkage_labelが存在する場合、mt:SpecificCategoryタグのlabelモディファイアに変数interlinkage_label(相互リンク先のカテゴリ名)を渡し、blog_idモディファイアに現在のブログIDをセットします。
そうすると、このmt:SpecificCategoryタグの中には相互リンク先のカテゴリコンテキストがセットされるので、あとはリンクのHTML等を出力すればOKです。
以上です。