【MovableType】エントリーの子カテゴリを取得して処理する

電脳備忘録

本記事のソースコードの利用によって生じた損害について、当方は一切の責任を負いません。ご自身の判断と責任のもとで参照・ご利用ください。

この記事は最終更新から3年以上経過しています。

記事一覧に国旗を表示させるためのタグを書いたときの備忘録。
親カテゴリが国旗でその下に子カテゴリが設定してあります。で、任意の子カテゴリを選択して再構築をかけると、その国の国旗アイコンが表示されるようにしたかったわけです。

  +--国旗(country_flags)
      +--日本(japan)
      +--アメリカ(united_states)
      +--フランス(france)
  

googleで調べたことろMTIfIsDescendantタグをつかうとよいことがわかりました。

現在のカテゴリが、parent モディファイアで指定したカテゴリのサブカテゴリにあたるか判定する条件タグです。囲まれた内容は条件にあてはまったときにのみ処理されます。

MTIfIsDescendant

あとこちらのエントリーも大変参考になりました。

ブログ記事内で特定のカテゴリラベル表示

下記の記述で実装できました。

<mt:EntryCategories>
    <mt:IfIsDescendant parent="国旗">
    <span class="country-flag"><img src="../img/country_icons/<$MTCategoryBasename$>.png" width="27" height="18" alt="<$MTCategoryLabel$>"></span>
    </mt:IfIsDescendant>
    </mt:EntryCategories>
    </mt:IfArchiveTypeEnabled>
  

このタグは全然知りませんでした。調べればいくらでもあるものですね...。

エントリー登録時親カテゴリである「国旗」にはチェックは入れずに子カテゴリにのみチェックを入れています。
国名・・・<$MTCategoryLabel$>
()内は出力ファイル/フォルダ名・・・<$MTCategoryBasename$>
画像のファイル名は()内と合わせておきます。例:japan.png

0%