拙著「FXはチャートで勝つ!」が発売されました。
FX(外国為替証拠金取引)でのチャートの読み方を解説しています。
自由国民社刊で、定価1,728円(消費税込み)です。
カテゴリの種類別にアーカイブページの出力方法を変える(その2)
昨日の記事の続きで、カテゴリの種類別にアーカイブページの出力方法を変える方法を紹介します。
今日(後半)はカテゴリアーカイブテンプレートの作り方を解説します。
テンプレートの例
テンプレートの例は以下のようになります。
<mt:ParentCategory setvar="top"><$mt:CategoryLabel$></mt:ParentCategory> <mt:If name="top" eq="市町村"> <$mt:CategoryLabel setvar="city"$> <h2><$mt:GetVar name="city"$></h2> <mt:SubCategories category="有人・無人"> <$mt:CategoryLabel setvar="type"$> <mt:SetVarBlock name="cond"><$mt:GetVar name="city"$> AND <$mt:GetVar name="type"$></mt:SetVarBlock> <mt:Entries category="$cond"> <mt:EntriesHeader> <h3><$mt:GetVar name="type"$></h3> <ul> </mt:EntriesHeader> <li><$mt:EntryTitle$></li> <mt:EntriesFooter> </ul> </mt:EntriesFooter> </mt:Entries> </mt:SubCategories> <mt:Else> <$mt:CategoryLabel setvar="type"$> <h2><$mt:GetVar name="type"$></h2> <mt:SubCategories category="市町村"> <$mt:CategoryLabel setvar="city"$> <mt:SetVarBlock name="cond"><$mt:GetVar name="city"$> AND <$mt:GetVar name="type"$></mt:SetVarBlock> <mt:Entries category="$cond"> <mt:EntriesHeader> <h3><$mt:GetVar name="city"$></h3> <ul> </mt:EntriesHeader> <li><$mt:EntryTitle$></li> <mt:EntriesFooter> </ul> </mt:EntriesFooter> </mt:Entries> </mt:SubCategories> </mt:If>
テンプレートの内容
テンプレートの内容は以下の通りです。
1行目
親カテゴリを読み込み(MTParentCategoryタグ)、その名前(MTCategoryLabelタグ)を変数topに代入します。
2行目/19行目/36行目
変数topの値(=親カテゴリ名)が、「市町村」かどうかで条件判断します。
条件が成立した場合は、3行目以降(市町村ごとの出力)に進みます。
一方、条件が成立しない場合は、20行目以降(有人・無人ごとの出力)に進みます。
3行目
再構築中のカテゴリ名(この時点では市町村名)を、変数cityに代入します。
4行目
変数cityの値(=市町村名)を出力します。
5行目/18行目
MTSubCategoriesタグを使って、「有人・無人」カテゴリの配下のカテゴリを、順に読み込みます。
6行目
MTSubCategoriesタグで処理中のカテゴリ名(=「有人」か「無人」)を、変数typeに代入します。
7行目
変数cityの値(=市町村名)と、変数typeの値(=「有人」か「無人」)を、「 AND 」でつないだ文字列を作り、変数condに代入します。
例えば、cityの値が「A市」で、typeの値が「有人」だと、変数condの値は「A市 AND 有人」になります。
8行目/17行目
7行目で求めた変数condの値を、MTEntriesタグのcategoryモディファイアに指定します。
これで、特定の市町村のカテゴリに属し、かつ有人(または無人)のカテゴリに属する記事を読み込むことができます。
9~12行目
最初の記事の時には(MTEntriesHeaderタグ)、変数typeの値(=「有人」か「無人」)を出力し、またulタグも出力します。
13行目
個々の記事のタイトルを出力します。
14~16行目
最後の記事の時には(MTEntriesFooterタグ)、ulの閉じタグを出力します。
20~35行目
市町村ごとの記事を出力するのと同じ考え方で、有人/無人のそれぞれのカテゴリに属する記事を、市町村ごとに出力します。