MTLoop タグによる配列変数・ハッシュ変数の制御
Movable Type 4.0 では管理画面用だった MTLoop タグが、Movable Type 4.1 ではテンプレート上で利用できるようになりました。これにより配列やハッシュの取得が MTLoop タグで実現できるようになります。
以下、MTLoop での配列とハッシュの利用方法を紹介します。
1.配列を取得する
MTFor タグで設定し、MTLoop タグで取得するサンプルを示します。
<mt:for var="i" from="0" to="9">
<mt:setvar name="foo[$i]" value="$i">
</mt:for>
<mt:loop name="foo">
<mt:getvar name="__value__">
</mt:loop>
MTLoop タグの使い方は、name モディファイアに配列変数名を設定するだけで、ここでは foo を設定しています。
配列変数 foo の値は予約変数 __value__ に自動的に設定されるので、あとは MTGetVar タグの name モディファイアに指定するだけです。
MTLoop タグの部分を MTFor タグで書くと
<mt:for var="i" from="0" to="9">
<mt:setvar name="foo[$i]" value="$i">
</mt:for>
となるので、MTLoop タグの方が簡単に書けることがお分かりになると思います。
なお、MTLoopタグでは配列のインデックスが0から処理が開始されるため、設定側の MTFor タグの from モディファイアは「0」、to モディファイアは「9」を設定しています。
2.ハッシュを取得する
4.1 ベータ 2 から新しく追加された sethashvar タグ(ハッシュをまとめて定義できるタグ)を用いて、ハッシュを作成し、MTLoop タグで取得するサンプルを示します。
<mt:sethashvar name="week">
<mt:setvar name="mon" value="Monday">
<mt:setvar name="tue" value="Tuesday">
<mt:setvar name="wed" value="Wednesday">
<mt:setvar name="thu" value="Thursday">
<mt:setvar name="fri" value="Friday">
<mt:setvar name="sat" value="Saturday">
<mt:setvar name="sun" value="Sunday">
</mt:sethashvar>
<mt:loop name="week">
<$mt:getvar name="__key__"$> <$mt:getvar name="__value__"$>
</mt:loop>
テンプレートを再構築すると、下のように出力されます。
sun Sunday
fri Friday
tue Tuesday
sat Saturday
mon Monday
wed Wednesday
thu Thursday
配列変数の時と同様、name モディファイアに配列変数名を設定します。ここでは week を設定します。
配列変数 week のキーの値は予約変数 __key__ に、キーに対応する値は予約変数 __value__ に自動的に設定されるので、それぞれ MTGetVar タグの name モディファイアに指定します。
ハッシュは配列のような順序性がありませんが、sort_by モディファイアを設定することで、一定の規則にしたがって出力されます。
キーの文字列順で並べ替え
<mt:loop name="[変数名]" sort_by="key">
キーの文字列順(逆順)で並べ替え
<mt:loop name="[変数名]" sort_by="key reverse">
キーに対応する値の文字列順で並べ替え
<mt:loop name="[変数名]" sort_by="value">
キーに対応する値の文字列順(逆順)で並べ替え
<mt:loop name="[変数名]" sort_by="value reverse">
キーに対応する値の文字を数値として比較・並べ替え
<mt:loop name="[変数名]" sort_by="value numeric">
キーに対応する値の文字を数値として比較・並べ替え(逆順)
<mt:loop name="[変数名]" sort_by="value numeric reverse">
Movable Type 4.1 / MTOS における変数での算術演算子の利用方法
昨日エントリーした「Movable Type 4.1 / MTOS における配列とハッシュの利用方法」に加え、MT4.1/MTOS では算術演算子の利用が可能になりました。
詳細は後述しますが、可能な演算は、
- 加算(+)
- 減算(-)
- 乗算(*)
- 除算(/)
- 剰余(%)
- インクリメント(++)
- デクリメント(--)
で、変数の演算結果を同一変数に保持したり、MTIf タグ等での判定や、判定と同時に演算すること等が可能です。
ということで、こちらについても以下に利用方法をまとめてみました。なお、利用可能と思われるテンプレートタグは下記の通りです。
- MTIf
- MTUnless
- MTGetVar
- MTSetVar
- MTSetVarBlock
- MTSetVarTemplate
1.加算
フォーマット
op モディファイアに"+"または"add"を設定します。定義済みの変数に加算する場合は value モディファイアを記述し、加算したい値を設定します。
値を加算のみする場合
<$mt:setvar name="[変数名]" op="+" value="[加算値]"$>
または
<$mt:setvar name="[変数名]" op="add" value="[加算値]"$>
加算後に表示する場合
<$mt:getvar name="[変数名]" op="+" value="[加算値]"$>
または
<$mt:getvar name="[変数名]" op="add" value="[加算値]"$>
加算した結果を判定する場合(例は等しい場合を判定)
<mt:if name="[変数名]" op="+" value="[加算値]" eq="[比較値]">
または
<mt:if name="[変数名]" op="add" value="[加算値]" eq="[比較値]">
サンプル
変数hogeに+1した結果を設定
<$mt:setvar name="hoge" value="1"$>
<$mt:setvar name="hoge" op="+" value="1"$>
変数hogeに+1した結果を表示
<$mt:setvar name="hoge" value="1"$>
<$mt:getvar name="hoge" op="+" value="1"$>
変数hogeに+1した結果が2であるかを判定
<$mt:setvar name="hoge" value="1"$>
<mt:if name="hoge" op="+" value="1" eq="2">
OK
<mt:else>
NG
</mt:if>
2.減算
フォーマット
op モディファイアに"-"または"sub"を設定します。定義済みの変数に減算する場合は value モディファイアを記述し、減算したい値を設定します。
値を減算のみする場合
<$mt:setvar name="[変数名]" op="-" value="[減算値]"$>
または
<$mt:setvar name="[変数名]" op="sub" value="[減算値]"$>
減算後に表示する場合
<$mt:getvar name="[変数名]" op="-" value="[減算値]"$>
または
<$mt:getvar name="[変数名]" op="sub" value="[減算値]"$>
減算した結果を判定する場合(例は等しい場合を判定)
<mt:if name="[変数名]" op="-" value="[減算値]" eq="[比較値]">
または
<mt:if name="[変数名]" op="sub" value="[減算値]" eq="[比較値]">
サンプル
変数hogeから-1した結果を設定
<$mt:setvar name="hoge" value="10"$>
<$mt:setvar name="hoge" op="-" value="1"$>
変数hogeから-1した結果を表示
<$mt:setvar name="hoge" value="10"$>
<$mt:getvar name="hoge" op="-" value="1"$>
変数hogeに-1した結果が2であるかを判定
<$mt:setvar name="hoge" value="3"$>
<mt:if name="hoge" op="-" value="1" eq="2">
OK
<mt:else>
NG
</mt:if>
3.乗算
フォーマット
op モディファイアに"*"または"mul"を設定します。定義済みの変数に乗算する場合は value モディファイアを記述し、乗算したい値を設定します。
値を乗算のみする場合
<$mt:setvar name="[変数名]" op="*" value="[乗数値]"$>
または
<$mt:setvar name="[変数名]" op="mul" value="[乗数値]"$>
乗算後に表示する場合
<$mt:getvar name="[変数名]" op="*" value="[乗数値]"$>
または
<$mt:getvar name="[変数名]" op="mul" value="[乗数値]"$>
乗算した結果を判定する場合(例は等しい場合を判定)
<mt:if name="[変数名]" op="*" value="[乗数値]" eq="[比較値]">
または
<mt:if name="[変数名]" op="mul" value="[乗数値]" eq="[比較値]">
サンプル
変数hogeに2倍した結果を変数に設定
<$mt:setvar name="hoge" value="1"$>
<$mt:setvar name="hoge" op="*" value="2"$>
変数hogeを2倍した結果を表示
<$mt:setvar name="hoge" value="1"$>
<$mt:getvar name="hoge" op="*" value="2"$>
変数hogeに2倍した結果が6であるかを判定
<$mt:setvar name="hoge" value="3"$>
<mt:if name="hoge" op="*" value="2" eq="6">
OK
<mt:else>
NG
</mt:if>
4.除算
フォーマット
op モディファイアに"/"または"div"を設定します。定義済みの変数に除算する場合は value モディファイアを記述し、除算したい値を設定します。
値を除算のみする場合
<$mt:setvar name="[変数名]" op="/" value="[除数値]"$>
または
<$mt:setvar name="[変数名]" op="div" value="[除数値]"$>
除算後に表示する場合
<$mt:getvar name="[変数名]" op="/" value="[除数値]"$>
または
<$mt:getvar name="[変数名]" op="div" value="[除数値]"$>
除算した結果を判定する場合(例は等しい場合を判定)
<mt:if name="[変数名]" op="/" value="[除数値]" eq="[比較値]">
または
<mt:if name="[変数名]" op="div" value="[除数値]" eq="[比較値]">
サンプル
変数hogeを2で割った結果を変数に設定
<$mt:setvar name="hoge" value="10"$>
<$mt:setvar name="hoge" op="/" value="2"$>
変数hogeを2で割った結果を表示
<$mt:setvar name="hoge" value="10"$>
<$mt:getvar name="hoge" op="/" value="2"$>
変数hogeを2で割った結果が3であるかを判定
<$mt:setvar name="hoge" value="6"$>
<mt:if name="hoge" op="/" value="2" eq="3">
OK
<mt:else>
NG
</mt:if>
5.剰余
フォーマット
op モディファイアに"%"または"mod"を設定します。定義済みの変数に剰余する場合は value モディファイアを記述し、剰余したい値を設定します。
値を剰余のみする場合
<$mt:setvar name="[変数名]" op="%" value="[剰余値]"$>
または
<$mt:setvar name="[変数名]" op="mod" value="[剰余値]"$>
剰余後に表示する場合
<$mt:getvar name="[変数名]" op="%" value="[剰余値]"$>
または
<$mt:getvar name="[変数名]" op="mod" value="[剰余値]"$>
剰余した結果を判定する場合(例は等しい場合を判定)
<mt:if name="[変数名]" op="%" value="[剰余値]" eq="[比較値]">
または
<mt:if name="[変数名]" op="mod" value="[剰余値]" eq="[比較値]">
サンプル
変数hogeを3で割った余りを変数に設定
<$mt:setvar name="hoge" value="5"$>
<$mt:setvar name="hoge" op="%" value="3"$>
変数hogeを3で割った余りを表示
<$mt:setvar name="hoge" value="5"$>
<$mt:getvar name="hoge" op="%" value="3"$>
変数hogeを3で割った余りが1であるかを判定
<$mt:setvar name="hoge" value="7"$>
<mt:if name="hoge" op="%" value="3" eq="1">
OK
<mt:else>
NG
</mt:if>
6.インクリメント
「インクリメント」とは、値に1を加算することを指します。
フォーマット
op モディファイアに"++"または"inc"を設定します。なお、定義済みの変数にしかインクリメントすることはできません。
値をインクリメントのみする場合
<$mt:setvar name="[変数名]" op="++"$>
または
<$mt:setvar name="[変数名]" op="inc"$>
インクリメント後に表示する場合
<$mt:getvar name="[変数名]" op="++"$>
または
<$mt:getvar name="[変数名]" op="inc"$>
インクリメントした結果を判定する場合(例は等しい場合を判定)
<mt:if name="[変数名]" op="++" eq="[比較値]">
または
<mt:if name="[変数名]" op="inc" eq="[比較値]">
サンプル
変数hogeをインクリメント
<$mt:setvar name="hoge" value="1"$>
<$mt:setvar name="hoge" op="++"$>
変数hogeをインクリメントした結果を表示
<$mt:setvar name="hoge" value="1"$>
<$mt:getvar name="hoge" op="++"$>
変数hogeをインクリメントした結果が2であるかを判定
<$mt:setvar name="hoge" value="1"$>
<mt:if name="hoge" op="++" eq="2">
OK
<mt:else>
NG
</mt:if>
7.デクリメント
「デクリメント」とは、値から1を減算することを指します。
フォーマット
op モディファイアに"--"または"dec"を設定します。なお、定義済みの変数にしかデクリメントすることはできません。
値をデクリメントのみする場合
<$mt:setvar name="[変数名]" op="--"$>
または
<$mt:setvar name="[変数名]" op="dec"$>
デクリメント後に表示する場合
<$mt:getvar name="[変数名]" op="--"$>
または
<$mt:getvar name="[変数名]" op="dec"$>
デクリメントした結果を判定する場合(例は等しい場合を判定)
<mt:if name="[変数名]" op="--" eq="[比較値]">
または
<mt:if name="[変数名]" op="dec" eq="[比較値]">
サンプル
変数hogeをデクリメント
<$mt:setvar name="hoge" value="10"$>
<$mt:setvar name="hoge" op="--"$>
変数hogeをデクリメントした結果を表示
<$mt:setvar name="hoge" value="10"$>
<$mt:getvar name="hoge" op="--"$>
変数hogeをデクリメントした結果が1であるかを判定
<$mt:setvar name="hoge" value="2"$>
<mt:if name="hoge" op="--" eq="1">
OK
<mt:else>
NG
</mt:if>
8.注意事項
文字列や数字を含んだ文字列に演算を行っても何も行われません。また、ベータ1a版の動作確認では、他のリスト系テンプレートタグとの組み合わせでは初期値が1でないと機能しないようです(下記)。
NG(初期値0)
<$mt:setvar name="hoge" value="0"$>
<MTEntries>
<$mt:setvar name="hoge" op="++"$>
</MTEntries>
<$mt:getvar name="hoge">
OK(初期値1)
<$mt:setvar name="hoge" value="1"$>
<MTEntries>
<$mt:setvar name="hoge" op="++"$>
</MTEntries>
<$mt:getvar name="hoge">
Movable Type 4.1 / MTOS における配列とハッシュの利用方法
公にアナウンスされていないようですが、MT4.1/MTOS では変数で配列とハッシュの操作が可能になり、変数処理がよりプログラマブルになりました。
ということで、以下に利用方法をまとめてみました。
1.配列
配列とは、同じ型のデータを連続的に並べた集合を指します。同一の変数名にインデックス(添え字)を付与することでデータを識別することができます。
例えば、week という変数に、Monday から Sunday までの文字列を設定するには、
week[0] = 'Monday'
week[1] = 'Tuesday'
week[2] = 'Wednesday'
week[3] = 'Thursday'
week[4] = 'Friday'
week[5] = 'Saturday'
week[6] = 'Sunday'
という感じになります。
MTSetVar による配列の設定
MTSetVar タグで配列を設定する方法は2通りあります。name モディファイアの変数名に直接インデックスを記述して、value モディファイアに値を設定するか(下)、
<MTSetVar name="week[0]" value="Mon">
<MTSetVar name="week[1]" value="Tue">
<MTSetVar name="week[2]" value="Wed">
:
index モディファイアを記述し、そこにインデックスを設定します(下)。value モディファイアは同じです。
<MTSetVar name="week" index="0" value="Mon">
<MTSetVar name="week" index="1" value="Tue">
<MTSetVar name="week" index="2" value="Wed">
:
MTSetVarBlock による配列の設定
MTSetVar タグに配列を設定する方法も、MTSetVar タグと大体同じで、name モディファイアの変数名に直接インデックスを記述し、value モディファイアの代わりにブロック内に値を記述します。
<MTSetVarBlock name="week[0]">
:
</MTSetVarBlock>
<MTSetVarBlock name="week[1]">
:
</MTSetVarBlock>
<MTSetVarBlock name="week[2]">
:
</MTSetVarBlock>
:
または、index モディファイアを記述し、そこにインデックスを設定します(下)。
<MTSetVarBlock name="week" index="0">
:
</MTSetVarBlock>
<MTSetVarBlock name="week" index="1">
:
</MTSetVarBlock>
<MTSetVarBlock name="week" index="2">
:
</MTSetVarBlock>
:
MTFor による配列の設定
単純な数値であれば MTFor で設定することも可能です。
下記に、0~6の値を配列に設定するサンプルを示します。MTFor タグの var モディファイアの変数名に配列のインデックスが設定されます。from モディファイアに最小値、to モディファイアに最大値を設定し、MTFor ブロック内に MTSetVar を記述して、配列のインデックスとなる $x を記述します。
<mt:for var="x" from="0" to="6">
<MTSetVar name="week[$x]" value="$x">
</mt:for>
MTSetVar の name モディファイアと別に、index モディファイアに $x を記述してもOKです。
<mt:for var="x" from="0" to="6">
<MTSetVar name="week" index="$x" value="$x">
</mt:for>
繰り返し処理による配列の設定
下記に、ブログ記事タイトルを配列の値に設定するサンプルを示します。
<MTEntries>
<MTSetVarBlock name="counter"><$MTGetVar name="__counter__"$></MTSetVarBlock>
<MTSetVarBlock name="entrytitle[$counter]"><$MTEntryTitle$></MTSetVarBlock>
</MTEntries>
2行目の counter は、インデックス値となる __counter__ の値を3行目に直接設定できないため、MTSetVarBlock でワンクッションおいてます。3行目でブログ記事タイトルを配列に設定しています。
配列の取得
配列の内容を取得・表示するには、MTGetVar(または MTVar)で name モディファイアにインデックスつきの変数名を指定します。
<MTGetVar name="week[0]">
<MTGetVar name="week[1]">
<MTGetVar name="week[2]">
:
実行結果
Mon
Tue
Wed
:
または、MTGetVar(または MTVar)で name モディファイアと別に index モディファイアにインデックス値を指定します。実行結果は同じです。
<MTGetVar name="week" index="0">
<MTGetVar name="week" index="1">
<MTGetVar name="week" index="2">
:
さらに MTFor タグを使うことで、繰り返しによる取得も可能です。
MTFor タグの var モディファイアの値が配列のインデックス値となります。from モディファイアに最小値、to モディファイアに最大値を設定し、MTFor ブロック内に MTGetVar を記述して配列の値を取得します。MTGetVar の name モディファイアにインデックス値となる $x を記述します。
<mt:for var="x" from="0" to="6">
<MTGetVar name="week[$x]">
</mt:for>
MTGetVar の name モディファイアと別に、index モディファイアに $x を記述してもOKです。
<mt:for var="x" from="0" to="6">
<MTGetVar name="week" index="$x">
</mt:for>
配列の要素数を求める
count 関数により、配列を設定した後の要素数を求めます。
フォーマットは、
<MTGetVar name="count(week)">
で、name モディファイアに要素数を求める関数名(count)と、関数のパラメータ(括弧内)に処理の対象となる配列の変数名を記述します。
実行結果
7
または、
<MTGetVar name="week" function="count">
と書いても同じです。function モディファイアに関数名 count を記述します。
配列の最後からデータを取得する
pop 関数により、配列の最後からデータを取得し、配列から取得データを削除します。
フォーマットは、
<MTGetVar name="pop(week)">
で、name モディファイアに関数名(pop)と、関数のパラメータ(括弧内)に処理の対象となる配列の変数名を記述します。
実行結果(結果には表示されませんが配列のインデックスが-1されています)
Sun
または、
<MTGetVar name="week" function="pop">
と書いても同じです。function モディファイアに関数名 pop を記述します。
配列の先頭からデータを取得する
shift 関数により、配列の先頭からデータを取得し、配列から取得データを削除します。
<MTGetVar name="shift(week)">
で、name モディファイアに関数名(shift)と、関数のパラメータ(括弧内)に処理の対象となる配列の変数名を記述します。
実行結果(結果には表示されませんが配列のインデックスが-1されています)
Mon
または、
<MTGetVar name="week" function="shift">
と書iいても同じです。
2.ハッシュ
ハッシュは、配列のインデックスが文字列となったものです。この文字列となったインデックスを「キー」と呼びます。先の1週間の例では、
week[mon] = 'Monday'
week[tue] = 'Tuesday'
week[wed] = 'Wednesday'
week[thu] = 'Thursday'
week[fri] = 'Friday'
week[sat] = 'Saturday'
week[sun] = 'Sunday'
となります。
MTSetVar にハッシュの設定
MTSetVar タグにハッシュを設定する方法は2通りあります。name モディファイアの変数名に直接キー({}で囲まれた部分)を記述するか(下)、
<MTSetVar name="week{mon}" value="Monday">
<MTSetVar name="week{tue}" value="Tuesday">
:
key モディファイアを記述し、そこにキーを設定します(下)。
<MTSetVar name="week" key="mon" value="Monday">
<MTSetVar name="week" key="tue" value="Tuesday">
:
MTSetVarBlock にハッシュの設定
MTSetVarBlock タグにハッシュを設定する方法も、MTSetVar タグと大体同じで、name モディファイアの変数名に直接キーを記述し、value 属性の代わりにブロック内に値を記述します。
<MTSetVarBlock name="week{mon}">
:
</MTSetVarBlock>
<MTSetVarBlock name="week{tue}">
:
</MTSetVarBlock>
:
または、key モディファイアを記述し、そこにキーを設定します(下)。
<MTSetVarBlock name="week" key="mon">
:
</MTSetVarBlock>
<MTSetVarBlock name="week" key="tue">
:
</MTSetVarBlock>
:
ハッシュの取得
ハッシュの内容を取得・表示するには、MTGetVar(または MTVar)で name モディファイアにキーつきの変数名を指定します。
<MTGetVar name="week{mon}">
<MTGetVar name="week{tue}">
:
実行結果
Monday
Tuesday
:
または、MTGetVar(または MTVar)で name モディファイアと別に key モディファイアにインデックス値を指定します。実行結果は同じです。
<MTGetVar name="week" key="mon">
<MTGetVar name="week" key="tue">
:
ハッシュの要素数を求める
ハッシュを設定した後の要素数は次の方法で求めます。
<MTGetVar name="count(week)">
name モディファイアに要素数を求める関数名(count)と、関数のパラメータ(括弧内)に処理の対象となる配列の変数名を記述します。
実行結果
7
または、
<MTGetVar name="week" function="count">
と書いても同じです。
ハッシュから要素を削除する
ハッシュから指定したキーの要素を取得し、同時にハッシュから該当要素を削除します。
<MTGetVar name="delete(week)" key="a">
name モディファイアに要素数を求める関数名(delete)と、関数のパラメータ(括弧内)に処理の対象となる配列の変数名を記述します。
実行結果(結果には表示されませんがハッシュのキーが削除されています)
Monday
または、
<MTGetVar name="week" key="a" function="delete">
と書いても同じです。
以上です。
さらに複雑な制御も可能と思われますがとりあえずこの辺で。
サイドバーの表示をメインページと同じにする
Movable Type 4 で、サイドバーの表示をメインページと同じにするカスタマイズです。
複数の方から「各ページのサイドバーの表示をメインページを同じしたいのですが」という質問を頂きましたので、このエントリーで紹介致します。
ここでは当ブログの配布テンプレート「Movable Type テンプレート」を例に説明しますが、デフォルトテンプレートでも同様のカスタマイズが可能です。
なお、このエントリーのカスタマイズを行うだけではメインページと全く同じ表示にならないのですが、そのことについては次回のエントリーで解説します。
1.ページによってサイドバーの表示内容が異なる仕組み
ページによってサイドバーの表示内容が異なるのは、サイドバーの各リストを MTIf タグで括り、表示するページを振り分けているためです。MTIf は Movable Type 4 で新たに追加されたテンプレートタグで、ある値を判定することで処理を振り分ける、という機能をもっています。
例えば、タグクラウドがメインページでしか表示されないのは、下のように MTIf タグで全体を括っています。
<MTIf name="main_index">
<dt class="sidetitle">
Tag Clouds
</dt>
<dd class="side">
<ul id="tags">
<MTTags>
<li class="module-list-item taglevel<$MTTagRank$>">
<a href="<$MTTagSearchLink$>"><$MTTagName$></a>
</li>
</MTTags>
</ul>
</dd>
</MTIf>
そして、MTIf タグの name 属性に記述された main_index という変数の値が "1" の場合にのみ、MTIf タグブロック内部が実行(=再構築対象)されます。
main_index という変数は、メインインデックスを再構築する時だけ "1" になる仕組みになっています。
また、月別アーカイブリストは、
<MTIf name="module_monthly_archives">
<MTIfArchiveTypeEnabled archive_type="Monthly">
<dt class="sidetitle">
Monthly Archives
</dt>
<dd class="side">
<ul>
<MTArchiveList archive_type="Monthly">
<li><a href="<$MTArchiveLink$>"><$MTArchiveTitle$></a> [<$MTArchiveCount$>]</li>
</MTArchiveList>
</ul>
</dd>
</MTIfArchiveTypeEnabled>
</MTIf>
と、MTIf タグの name 属性に module_monthly_archives という変数名を用いています。そして月別アーカイブの再構築時だけ module_monthly_archives の値が "1" になり、MTIf タグブロック内が再構築対象となります。
2.メインページと同じ表示にする方法
方法は、各リストを括っているMTIf タグを外すだけです。ただし、「最近のエントリー」については冒頭に記した通り、MTIf タグを外しただけではメインページと同じ表示にならないので、その点は予めご了承ください。
以下、リスト別に示します。赤色部分を削除してください。
最近のエントリー
<MTIf name="module_recent_entries">
<dt class="sidetitle">
Recent Entries
</dt>
<dd class="side">
<ul>
<MTEntries lastn="10">
<li><a href="<$MTEntryPermalink$>" title="e<$MTEntryID$>"><$MTEntryTitle$></a></li>
</MTEntries>
</ul>
</dd>
</MTIf>
タグクラウド
<MTIf name="main_index">
<dt class="sidetitle">
Tag Clouds
</dt>
<dd class="side">
<ul id="tags">
<MTTags>
<li class="module-list-item taglevel<$MTTagRank$>">
<a href="<$MTTagSearchLink$>"><$MTTagName$></a>
</li>
</MTTags>
</ul>
</dd>
</MTIf>
カテゴリーリスト
<MTIf name="module_category_archives">
<MTIfArchiveTypeEnabled archive_type="Category">
<dt class="sidetitle">
Categories
</dt>
<dd class="side">
<div id="categories">
<MTTopLevelCategories>
<MTSubCatIsFirst><ul></MTSubCatIsFirst>
<MTIfNonZero tag="MTCategoryCount">
<li><a href="<$MTCategoryArchiveLink$>" title="<$MTCategoryDescription$>"><MTCategoryLabel></a> [<$MTCategoryCount$>]
<MTElse>
<li><MTCategoryLabel>
</MTElse>
</MTIfNonZero>
<MTSubCatsRecurse max_depth="3">
</li>
<MTSubCatIsLast></ul></MTSubCatIsLast>
</MTTopLevelCategories>
</div>
</dd>
</MTIfArchiveTypeEnabled>
</MTIf>
月別アーカイブリスト
<MTIf name="module_monthly_archives">
<MTIfArchiveTypeEnabled archive_type="Monthly">
<dt class="sidetitle">
Monthly Archives
</dt>
<dd class="side">
<ul>
<MTArchiveList archive_type="Monthly">
<li><a href="<$MTArchiveLink$>"><$MTArchiveTitle$></a> [<$MTArchiveCount$>]</li>
</MTArchiveList>
</ul>
</dd>
</MTIfArchiveTypeEnabled>
</MTIf>
3.注意事項
タグクラウドは再構築のパフォーマンスに影響があるため、他のアーカイブで表示させない(MTIf タグを外さない)ことをお勧めします。
表示させたい場合は Ajax モジュール化を行ないましょう。
4.サイドバーの MTIf タグに設定されている変数名
参考までに、デフォルトテンプレート(3 カラム)で、各リストの MTIf タグに設定されている変数名をまとめました(配布テンプレートも基本的にこの仕組みにしたがっています)。
リスト名 | 変数名 |
---|---|
タグクラウド | main_index |
ユーザーアーカイブリスト | module_author_archives |
月別アーカイブリスト | module_monthly_archives |
月別カテゴリーアーカイブリスト | module_category-monthly_archives |
月別ユーザアーカイブリスト | module_author-monthly_archives |
最近のエントリー | module_recent_entries |
アイテムリスト | main_index |
サブカテゴリーリスト | module_category_archives |
上記の各変数名がどのページで "1" になるかについては「予約変数一覧 for Movable Type 4(その1)」を参考にしてください。
なお、
- main_index
- module_recent_entries
の2つの変数については、どちらもメインページのみで "1" となります。