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

電脳備忘録

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

 +--国旗(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

広告

ブログの維持費に充てるでございます・・・。