2020.07.22
Movable Type:特定のカテゴリとその記事を条件分岐する
以前、「Movable Type:ホーム(サイトのトップページ)だけ条件分岐する」という記事を書いたのですが、「カテゴリの条件分岐はどうするのか」という質問をいただきました。
一般的には、「カテゴリ別記事リスト」アーカイブテンプレートでは、<mt:If tag=”CategoryLabel” eq=”foo”> を使用し、
https://movabletype.net/dict/category-05/category-if.html
「記事」アーカイブテンプレートでは、<mt:IfCategory name=”foo”> や <mt:If tag=”EntryCategory” eq=”foo”> を使用します。
https://movabletype.net/dict/if-09/mtifcategory.html
ただその場合、共通テンプレートにはカテゴリと記事、各々の条件分岐を記述しなければいけません。
ですので、私は各テンプレートに共通の変数を定義しています。
▼記述例▼
「カテゴリ別記事リスト」アーカイブテンプレート:
<mt:CategoryBasename setvar="category_basename">
<mt:Var name="$category_basename" value="1">
「記事」アーカイブテンプレート:
<mt:EntryPrimaryCategory><mt:CategoryBasename setvar="category_basename"></mt:EntryPrimaryCategory>
<mt:Var name="$category_basename" value="1">
これで例えば、お知らせ(info)だけ条件分岐したい場合、<mt:If name=”info”> でまとめて条件分岐できます。
みなさんも変数で柔軟なテンプレート設計をお試しください!
▼タグの説明▼
MTIf:
条件分岐タグ。条件を満たした場合に実行する。
https://www.movabletype.jp/documentation/appendices/tags/if.html
MTCategoryLabel:
カテゴリ名を表示する。
https://www.movabletype.jp/documentation/appendices/tags/categorylabel.html
MTIfCategory:
条件分岐タグ。対象となる記事が指定されたカテゴリに属している場合に実行する。https://www.movabletype.jp/documentation/appendices/tags/ifcategory.html
MTEntryCategory:
記事に指定したメインカテゴリを表示する。
https://www.movabletype.jp/documentation/appendices/tags/entrycategory.html
MTCategoryBasename:
カテゴリの出力ファイル/フォルダ名(ベースネーム)を表示する。
https://www.movabletype.jp/documentation/appendices/tags/categorybasename.html
MTVar:
変数タグ。定義した変数から値を呼び出す。
value モディファイアを使用した場合、変数を定義して値を設定する。
https://www.movabletype.jp/documentation/appendices/tags/var.html
EntryPrimaryCategory:
ブロックタグ。プライマリカテゴリ(メインカテゴリ)の情報を取得する。
https://www.movabletype.jp/documentation/appendices/tags/entryprimarycategory.html