Movable Type CMSプラットフォーム Movable Type
ドキュメントサイト

Tips構築・運用に役立つヒント

アーカイブテンプレートに設定される変数を利用したテンプレート判別

Movable Type のアーカイブテンプレートには、大きくわけて、ウェブページ、ブログ記事、ブログ記事リストの3種類がありますが、出力することができるアーカイブの種類は16種類もあり、カスタマイズを進めていくと、出力するアーカイブごとに出力する内容を変更したりといったことも必要になると思います。

たとえば、ブログ記事リストテンプレートではアーカイブマッピングを利用して、14種ものアーカイブを出力することができますが、各々のアーカイブの判別をテンプレートに直接変数を設定していては、テンプレートが冗長になってしまい、メンテナンス性を損うことになりかねません。

このような場合に便利なのが、出力するアーカイブなどによってあらかじめ設定される変数宣言です。Movable Type では、アーカイブテンプレートの種類や、そのテンプレートがどのような種類のアーカイブを出力するかによって、変数をあらかじめ設定します。この変数を利用して条件判断を行えば、テンプレート上でたくさんの変数を設定しなくても、テンプレートの判別を行うことができます。

ひとつ例を見てみましょう。ブログ記事リストテンプレートで、月別アーカイブを出力した場合、テンプレートに何も設定が無くても以下のように変数が宣言されたのと同じになります。

<$MTSetVar name="archive_template" value="1"$>
<$MTSetVar name="archive_listing" value="1"$>
<$MTSetVar name="datebased_only_archive" value="1"$>
<$MTSetVar name="datebased_monthly_archive" value="1"$>
<$MTSetVar name="archive_class" value="datebased-monthly-archive"$>

ですので、ブログ記事テンプレート内で、月別アーカイブの場合のみ出力するコンテンツを用意したい場合は、以下のような条件文だけをブログ記事リストテンプレートに記述するだけで実現できます。

<MTIf name="archive_class" eq="datebased-monthly-archive">
月別アーカイブの場合にのみ処理する内容
</MTIf>

各アーカイブに合わせて設定される変数については、ドキュメントを参照ください。

  • このエントリーをはてなブックマークに追加