2014年7月20日 16:15

[MT]特定のページで表示を変える・MTSetVarとMTIfモディファイアの使い方。

Movable Type 6 本格活用ガイドブック [リフロー版]

超便利な「MTIf」モディファイア

Movabletypeでブログを構築していると、各ページごとに表示を変えたい場合があるかと思います。できるようになればサイドバーの表示を特定ページでのみ変えたりできます。

方法はいくつかあり、「MTIfArchiveType」ブロックタグを使うことでカテゴリや月別の表示を変更することができます。こちらは割と簡単なので、公式のテンプレートタグリファレンスを見て頂ければと思います。

今回の記事では、カテゴリページ、月別ページ、ウェブページのいずれにも属さず、メインページでもないテンプレートにも表示分岐をすることができる「MTIf」モディファイアの利用方法です。

スポンサードリンク

まず手順を列記します。

  • 分岐したいページに「MTSetVar」を定義する。
  • 「MTSetVar」のnameとvalueのモディファイアを定義する。
  • 分岐したい場所にタグを挿入する。
  • 表示確認

「MTSetVar」を定義する

どういった工程を踏むかというと、最初に分岐したいページに"印"をつけるところからスタートします。

MTSetVarタグはファンクションタグで、以下のように書きます。

<mt:SetVar name="*" value="@">

このタグで宣言したnameの*とvalueの@を利用して後々分岐しようというものです。

例として、「サイドバー」の一部表示が、「サイトマップ」ページと「メイン(index)ページ」は共通で、「記事ページ」は変えたいとします。

「MTSetVar」のモディファイア定義

メインページは既に「name="main_index"」と決まっていますが、「サイトマップ」ページはカテゴリや月別のテンプレートでもウェブページテンプレートでもない独立したテンプレートで作ってあるとします。その場合、「サイトマップ」ページを分岐する方法がありません。

そこで分岐用に「サイトマップ」の「サイドバー」HTML直前に<mt:SetVar name="side" value="2">を挿入します。「メインページ」にも同様に挿入し、「記事ページ」の方は「サイドバー」HTMLの直前に<MTSetVar name="sid" value="0">を挿入します。

これにより、共通するname="side"を比較場所にして、value=""の値が1より大きいか、小さいかという比較で分岐します。

分岐したい場所にタグを挿入する

今回分岐したいのは「サイドバー」なので、「サイドバー」テンプレート側に分岐させる条件タグを書きます。

<MTIf name="sid" gt="1">
// ここに「サイトマップ」と「メインページ」で表示する内容
</MTIf>

value=""の部分がgt="1"となっているのに注目して下さい。そして、その下に

<MTIf name="sid" lt="1">
// ここに「記事ページ」で表示する内容
</MTIf>

と、挿入すれば表示を分離することが可能です。今度はlt="1"となっています。

それぞれのモディファイアを説明をすると、<MTIf name="sid" gt="1">は、

name="side"の値(value)が「1より大きい場合」

を意味し、

<MTIf name="sid" lt="1">は、

name="side"の値(value)が「1より小さい場合」

を意味しています。

これにより「サイトマップ」「メインページ」をvalue値が1より大きいグループ、「記事ページ」は1より小さいグループとして分岐することができます。

絶版後記

これを使うと記事ページでは本文内に広告を表示し、サイドバーの広告表示を別の物に。メインページやサイトマップでは2つの広告を表示するなど細かいカスタムが可能になります。

「MTSetVar」と「MTIf」モディファイアでの分岐は融通が利いて便利なタグなので覚えておくといいでしょう。

  • 【タグ】
プログラミングカテゴリの他の記事はこちら。
MovableTypeカテゴリの他の記事はこちら。

スポンサードリンク

news

新作同人誌! MEMORIE(あまんちゅ!イラスト本)の通販 → メロンブックス

イラスト・漫画など活動報告 → イラスト・漫画仕事および同人活動の記録| 絶版あかみる

雑誌掲載されました

絶版あかみるを登録する

follow us in feedly
  • RSS
  • Twitter(@akamiru_)
  • おしらせ

    カテゴリーはページ最下部、月間アーカイブなどは「サイトマップ」にまとめてあります。

    Kindleセール情報

    Google先生に怒られたっぽいのでしばらく削除します。すみません。

    青年コミック(4社選)の3ページ分(人気順)から情報を取得。