Categories: MovableType

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|テンプレートタグリファレンス

Share

Recent Posts

移転を計画中?

新たにドメインを取得し、サイト…

4年 ago

iPhone から Android へ乗り換えた

長く使ってきた iPhone …

6年 ago

Chrome の拡張機能がウェブサイトからインストールを中止

ブラウザのアドオン、拡張機能と…

7年 ago

iOS 12 と macOS 10.14 Mojave 対応機種

iOS 12 と macOS …

7年 ago