ノウハウをいつでも。ウェブマーケティングのポータルサイト

Movable Type Tips

デザインの切り替えや条件分岐など、いろいろな便利な「予約変数」を使いこなそう!

このエントリーをはてなブックマークに追加
      
follow us in feedly
友だち追加数

Movable Type を利用してテンプレート開発を行っていると

  • トップページ(インデックスページ)と記事でナビゲーションを切り替えたい
  • カテゴリアーカイブと記事でデザインを変えたい

など、テンプレートの種類ごとにデザインを切り替えたい場面に遭遇する場合があります。

Movable Type は「記事」「インデックステンプレート」など、テンプレートの種類が別れているため、該当テンプレートに直接記述することで、テンプレートごとに異なるデザインや情報を出力することができます。

一方で、ナビゲーションやサイドバー、ヘッダーなどのように、テンプレートモジュールで共通化しているパーツの場合、上記のような方法は使えません。

そんなときは、「予約変数」を上手に使うことで、問題が解決する場合があります。



予約変数とは

予約変数とは、Movable Type のテンプレートごとにあらかじめ予約されている変数のことです。例えば、記事テンプレートの場合、[entry_template] という変数に1という値がセットされています。

実際に、記事テンプレートを使って確認してみましょう。Movable Type のテーマの一つ「Rainier」の記事テンプレートに

entry_templateの値は: <mt:Var name="entry_template">

と記述して、出力結果を見てみましょう。

テストコード

実際に出力された記事を見てみると、「entry_templateの値は: 1」という値が出力されていることがわかります。

テスト結果

予約変数は、記事テンプレートだけでなく、インデックステンプレートやカテゴリアーカイブなど、さまざまなテンプレートに設定されています。

詳細は、Movable Type のドキュメントをご覧ください。

予約変数を利用したテンプレートの条件分岐

この予約変数を利用することで、テンプレートごとに条件分岐を設定することができます。
例として、以下のロジックを実装してみましょう。

  • 記事テンプレートで出力されたhtmlページの場合「このページは記事テンプレートで出力されました」と表示
  • ウェブページテンプレートで出力されたhtmlページの場合「このページはウェブページテンプレートで出力されました」と表示

では、実際にコードを書いてみましょう。

<mt:If name="entry_template">
<p>このページは記事テンプレートで出力されました</p>
</mt:If>
<mt:f name="page_template">
<p>このページはウェブページテンプレートで出力されました</p>
</mt:If>

次に、このコードをMovable Type のテーマに適用して、再構築してみましょう。今回は、わかりやすいように、「バナーヘッダー」という共通のテンプレートモジュールに貼付けしてみます。

banner_header.png

以下が、ウェブページを再構築した結果です。

ウェブページの再構築結果

以下が、記事を再構築した結果です。

記事の再構築結果

ご覧いただくと分かるように、ウェブページと記事で、それぞれ異なるメッセージが表示されました。

このように、予約変数を使うと、テンプレートごとの分岐処理が簡単にできます。Movable Type でテンプレート開発を行う場合、上手に使いこなすと、なにかと便利に使えることと思います。

機会がありましたら、お試しください。

© MAKEPO

 
このエントリーをはてなブックマークに追加
   
follow us in feedly
友だち追加数

著者情報

オサナイタケシ

長内毅志

Movable Type プロダクトマネジャーを経て、現在、Movable Type エバンジェリスト兼デベロッパーリレーションマネジャー。

他の参加者を見る

長内毅志

関連記事

マーケティングノウハウ足りてますか?

MAKEPOのメルマガ…購読してみませんか?
直近のピックアップ記事のほか、セミナー・ツール活用情報など不定期でお伝えしています。「サイトにアクセスするのは面倒だ!」「電車の中でざっくり読みたい」という方は是非ご登録ください。 リアルタイムで情報取得をしたい方は、RSSまたは公式Twitterをフォローしてご覧ください!

通勤中の情報収集に!

メルマガ登録

いますぐ新着情報を知るなら

LINE@で友だちに追加!