各テンプレートには予め用意された「予約変数」が設定されています。
以下に、予約変数一覧を示します。
| ブログ記事 | ウェブページ | ブログ記事リスト | ||||||||||||||
| 日別 | 週別 | 月別 | 年別 | ユーザー別 | ユーザー別 | カテゴリ | カテゴリ | |||||||||
| 日別 | 週別 | 月別 | 年別 | 日別 | 週別 | 月別 | 年別 | |||||||||
| archive_template | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ |
| archive_listing | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ | ||
| entry_template | ◯ | |||||||||||||||
| entry_archive | ◯ | |||||||||||||||
| page_archive | ◯ | |||||||||||||||
| page_template | ◯ | |||||||||||||||
| feedback_template | ◯ | ◯ | ||||||||||||||
| datebased_only_archive | ◯ | ◯ | ◯ | ◯ | ||||||||||||
| datebased_daily_archive | ◯ | |||||||||||||||
| datebased_weekly_archive | ◯ | |||||||||||||||
| datebased_monthly_archive | ◯ | |||||||||||||||
| datebased_yearly_archive | ◯ | |||||||||||||||
| author_archive | ◯ | |||||||||||||||
| author_daily_archive | ◯ | |||||||||||||||
| author_weekly_archive | ◯ | |||||||||||||||
| author_monthly_archive | ◯ | |||||||||||||||
| author_yearly_archive | ◯ | |||||||||||||||
| category_archive | ◯ | |||||||||||||||
| category_daily_archive | ◯ | |||||||||||||||
| category_weekly_archive | ◯ | |||||||||||||||
| category_monthly_archive | ◯ | |||||||||||||||
| category_yearly_archive | ◯ | |||||||||||||||
| module_yearly_archives | ◯ | |||||||||||||||
| module_category_archives | ◯ | |||||||||||||||
| module_author-monthly_archives | ◯ | ◯ | ||||||||||||||
| module_category-monthly_archives | ◯ | |||||||||||||||
それをMTIf タグ等の条件分岐でテンプレートの判をし、動的な処理を行うことができます。
例えば、ブログ記事には entry_template という予約変数に値 "1" が設定されています。
具体的には、MTSetVar タグで、name モディファイアに変数名 "entry_template" が、value モディファイアにその値 "1" が設定されています。
<mt:SetVar name="entry_template" value="1">
これは、name モディファイアで設定した entry_template という変数に 0 以外の値があるという設定を行うことで、現在のページがブログ記事であると判別できるようにする、という仕組みです。
MTIf タグでテンプレートごとに異なる出力する方法を見てみましょう。
アーカイブ種別が「ブログ記事・ウェブページ」であることを判定したい場合、MTIf タグを使って次のように設定します。 テンプレートやテンプレートモジュールが「ブログ記事・ウェブページ」として実行される場合のみ、MTIf タグのブロック内部が実行されます。
<mt:If name="feedback_template"> <p>このページは、ブログ記事・ウェブページです。</p> </mt:If>
MTElse タグや MTElseIf タグを使って複雑なテンプレート判定もできます。
<mt:If name="main_index"> <p>このページは、インデックページです。</p> <mt:ElseIf name="entry_template"> <p>このページは、ブログ記事ページです。</p> <mt:Else> <p>このページは、インデックページでもブログ記事でもありませんす。</p> </mt:If>
Post your comment