MT4でfolderの中を展開してサイトマップとかに使う

 カテゴリ:

以前「MT4でカテゴリにエントリ一覧を表示する」というエントリで使った方法を応用して、サイトマップにウェブページを表示する方法です。

※2007年10月31日加筆
いまならこちらの記事がおすすめ
小粋空間さん:Sitemaps 0.90 用テンプレート(MT4対応)

以前「MT4でカテゴリにエントリ一覧を表示する」というエントリで使った方法を応用して、サイトマップにウェブページを表示する方法です。ていうか、すでにサイトマップを作る for Movable Type 4(小粋空間さん)に載っていたわけですが(^^;)


<MTTopLevelFolders>
<MTSubCatIsFirst>
<ul>
</MTSubCatIsFirst>
<MTIfNonZero tag="MTFolderCount">
<li><$MTFolderLabel$>
<ul>
<MTPages>
<li><a href="<$MTPagePermalink$>" title="<$MTPageTitle$>"><$MTPageTitle$></a></li>
</MTPages>
</ul>
</MTIfNonZero>
<MTSubFolderRecurse>
</li>
<MTSubCatIsLast>
</ul>
</MTSubCatIsLast>
</MTTopLevelFolders>

うちはフォルダ名=カテゴリなので、このようにしてみる。ついでにフォルダ名を見出しに変更。


<MTTopLevelFolders>
<MTIfNonZero tag="MTFolderCount">
<h4><$MTFolderLabel$></h4>
<ul>
<MTPages>
<li><a href="<$MTPagePermalink$>" title="<$MTPageTitle$>"><$MTPageTitle$></a></li>
</MTPages>
</ul>
</MTIfNonZero>
<MTSubFolderRecurse>
</li>
</MTTopLevelFolders>

通常はこれでいいんですが、うちの場合、MTFolderLabelの値をそのままCSSシグネチャに使っているので、contact、thissite、profileなどと、フォルダ名がそのまんま出てしまうんですね。これを解決するために、MTSetVar、MTGetVar、MTIfで変数をコントロールします。


<MTTopLevelFolders>

<MTIfNonZero tag="MTFolderCount">
<MTSetVarBlock name="foldertitle"><$MTFolderLabel$></MTSetVarBlock>
	
	<MTIf name="foldertitle" eq="contact">
	<MTSetVar name="foldertitle" value="お問い合わせ">
	</MTIf>
	
	<MTIf name="foldertitle" eq="profile">
	<MTSetVar name="foldertitle" value="プロフィール">
	</MTIf>
	
	<MTIf name="foldertitle" eq="thissite">
	<MTSetVar name="foldertitle" value="このサイトについて">
	</MTIf>

<h4><$MTGetVar name="foldertitle"$></h4>
<ul>
<MTPages>
<li><a href="<$MTPagePermalink$>" title="<$MTPageTitle$>"><$MTPageTitle$></a></li>
</MTPages>
</ul>
</MTIfNonZero>
<MTSubFolderRecurse>
</li>
</MTTopLevelFolders>

MTSetVarで変数foldertitleに取得した<$MTFolderLabel$>の値を、MTIfで調べて一致したときだけ上書きして表示しています。MT4のカスタマイズって、MTSetVar、MTGetVar、MTIfの使い方が重要ですね。

というわけで、自分用メモでした。