7月 6 2008

特定カテゴリーの表示、非表示:カテゴリーアーカイブ編

ウィジェットのカテゴリーアーカイブ等ではMTEntriesで出力されていないので、MTEntriesでのカテゴリー表示、非表示は使用できません。
mt:IfタグとMTUnlessタグを使うことで、カテゴリーアーカイブ等においても表示、非表示の制御ができます。

カテゴリーアーカイブウィジェット初期状態

下記は開始タグ位置と終了タグ位置にタグを追加していきます。

<mt:TopLevelCategories>
<mt:SubCatIsFirst>
<ul class="widget-list">
</mt:SubCatIsFirst>
<!-- 開始タグ位置 -->
<mt:If tag="CategoryCount">
<li class="widget-list-item">
<a href="<$mt:CategoryArchiveLink$>"
<mt:If tag="CategoryDescription">
title="<$mt:CategoryDescription$>"
</mt:If>>
<$mt:CategoryLabel$> (<$mt:CategoryCount$>)</a>
<mt:Else>
<li class="widget-list-item"><$mt:CategoryLabel$>
</mt:If>
<$mt:SubCatsRecurse$>
</li>
<!-- 終了タグ位置 -->
<mt:SubCatIsLast>
</ul>
</mt:SubCatIsLast>
</mt:TopLevelCategories>

特定カテゴリーの表示

MTSetVarBlockタグとMt:Ifタグを使って制御します。
下記の例ではMTSetVarBlockにcatnameという変数を宣言して、その中にMTCategoryLabelを格納しています。
そして変数catnameの値をMt:Ifタグのlikeで変数catnameとlike条件が一致すれば表示します。

likeモディファイアは正規表現が使用できるため、複数のカテゴリーを表示したい場合は、like=”カテゴリ1”の部分をlike=”カテゴリ1|カテゴリ2”という風に『 | 』で連結することで複数のカテゴリーを指定できます。

<mt:TopLevelCategories>
<mt:SubCatIsFirst>
<ul class="widget-list">
</mt:SubCatIsFirst>
<MTSetVarBlock name="catname">
<$MTCategoryLabel$>
</MTSetVarBlock>
<MTIf name="catname" like="カテゴリ1">
<mt:If tag="CategoryCount">
<li class="widget-list-item">
<a href="<$mt:CategoryArchiveLink$>"
<mt:If tag="CategoryDescription">
title="<$mt:CategoryDescription$>"
</mt:If>>
<$mt:CategoryLabel$> (<$mt:CategoryCount$>)</a>
<mt:Else>
<li class="widget-list-item"><$mt:CategoryLabel$>
</mt:If>
<$mt:SubCatsRecurse$>
</li>
</mt:If>
<mt:SubCatIsLast>
</ul>
</mt:SubCatIsLast>
</mt:TopLevelCategories>

特定カテゴリーの非表示

特定カテゴリーの表示とほぼ同じですが、こちらはMTUnlessタグを使用します。Mt:Ifタグは条件と一致したものでしたが、MTUnlessタグは条件と一致しなかったものを表示させます。

複数のカテゴリを非表示にしたい場合は表示の場合と同じくlikeモディファイアに『 | 』で連結します。

<mt:TopLevelCategories>
<mt:SubCatIsFirst>
<ul class="widget-list">
</mt:SubCatIsFirst>
<MTSetVarBlock name="catname">
<$MTCategoryLabel$>
</MTSetVarBlock>
<MTIf name="catname" like="カテゴリ1">
<mt:If tag="CategoryCount">
<li class="widget-list-item">
<a href="<$mt:CategoryArchiveLink$>"
<mt:If tag="CategoryDescription">
title="<$mt:CategoryDescription$>"
</mt:If>>
<$mt:CategoryLabel$> (<$mt:CategoryCount$>)</a>
<mt:Else>
<li class="widget-list-item"><$mt:CategoryLabel$>
</mt:If>
<$mt:SubCatsRecurse$>
</li>
</mt:If>
<mt:SubCatIsLast>
</ul>
</mt:SubCatIsLast>
</mt:TopLevelCategories>