MT:フォルダ毎で表示する内容を変更する

Movable Type でフォルダ(トップレベルフォルダ)毎にサイドバーの表示を変更するといった場合「MTFolderBasename」をブロックタグ「MTSetVarBlock」で括り、値を取得します。

<MTSetVarBlock name="folder_name"><MTTopLevelFolder><$MTFolderBasename$></MTTopLevelFolder></MTSetVarBlock>

次に「MTIf」で、先のブロックタグで取得した値を「name」で呼び出し、呼び出した値が「eq」と一致するかを判断します。

<MTIf name="folder_name" eq="folder1">

「name」で取得した値が「eq」と一致した場合は上記構文の下に記述した内容を表示します。
もし違う場合は、同様に「MTElseIf」で「eq」に一致するかを判断します。

<MTElseIf eq="folder2">

「name」が「eq」と一致する場合は、上記構文の下に記述した内容を表示します。

後は、必要な分だけ「MTElseIf」を繰り返していくと、フォルダ毎に表示する内容を変更する事が出来ます。

纏めると以下の様になります。

<MTSetVarBlock name="folder_name"><MTTopLevelFolder><$MTFolderBasename$></MTTopLevelFolder></MTSetVarBlock>
<MTIf name="folder_name" eq="folder1">
    folder1 の内容
<MTElseIf eq="folder2">
    folder2 の内容
<MTElseIf eq="folder3">
    folder3 の内容
</MTIf>

また「eq」の代わりに「like」を使用して、name に like="xxx" が含まれる場合という指定も可能で

<MTSetVarBlock name="folder_name"><MTTopLevelFolder><$MTFolderBasename$></MTTopLevelFolder></MTSetVarBlock>
<MTIf name="folder_name" like="folder">
    folder1、folder2、folder3 の内容
<MTElseIf like="directory">
    directory1、directory2、directory3 の内容
</MTIf>

と指定すると、folder1 〜 folder3、directory1 〜 directory3 までが同じ内容が表示されます。

MTSetVarBlock|テンプレートタグリファレンス
MTIf|テンプレートタグリファレンス
MTElse|テンプレートタグリファレンス

Appshocker

HonyaClub.com

リンクシェア アフィリエイト紹介プログラム