お知らせ

PHPによるWordPressカスタマイズブック2009年9月8日

PHPによるWordPressカスタマイズブック」が発売されました。
WordPressのテンプレートにPHPのプログラムを書いてカスタマイズする方法や、WordPressのデータベースにPHPでアクセスする方法、またWordPressのプラグインの開発方法など、WordPressをより深く活用したい方に最適な一冊です。

他にも多数書籍を執筆しています。
こちらもぜひご覧ください。

Movable Type 4のブロックタグ内で使える変数

| コメント(0) | トラックバック(0)

Movable Type 4では、ブロックタグ(従来の呼び方ではコンテナタグ)の中で、「__first__」「__last__」「__even__」「__odd__」「__counter__」の各変数を使うことができるようになっています。
この使い方を紹介します。

1.定義される変数

ブロックタグの内部では、以下の変数が定義されます。
なお、変数名の前後にある「__」は、アンダースコア(_)2つです。

変数名変数が取る値
__first__繰り返しの1回目なら1、それ以外なら0
__last__繰り返しの最後なら1、それ以外なら0
__odd__繰り返しの奇数回目なら1、それ以外なら0
__even__繰り返しの偶数回目なら1、それ以外なら0
__counter__現在の繰り返し回数

2.繰り返しの最初と最後を判断する

ブロックタグでは繰り返しが行われることが多いですが、その最初(または最後)だけ何か特別な処理をしたいことは、比較的よくあります。
テンプレートタグには、「MTXXXHeader」や「MTXXXFooter」など、繰り返しの先頭と最後を判断する条件タグがありますが、それと同じようなことを__first__と__last__の変数で行うことができます。

Movable Type 4では、変数の値が真(0や空文字列以外)かどうかを判断するタグとして、「MTIf」というタグが追加されています。
このタグを使うことで、以下のような書き方をすることができます。

<MTEntries等のブロックタグ>
<MTIf name="__first__">
繰り返しの1回目のときのみ出力する内容
</MTIf>
<MTIf name="__last__">
繰り返しの最後のときのみ出力する内容
</MTIf>
エントリー等の情報を出力する部分
</MTEntries等>

3.奇数件目と偶数件目で出力する内容を変える

__odd__(または__even__)の変数を使うと、エントリー等の一覧を表示する際に、奇数件目と偶数権目で出力する内容を変えることができます。
例えば、以下のようにすると、エントリー一覧を出力する際に、奇数件目と偶数件目とで、div要素にそれぞれ「odd」「even」のクラスを割り当てることができます。
これを利用すれば、「奇数件目と偶数件目で背景色を変える」といったことができます。

<MTEntries>
<div class="<MTIf name="__odd__">odd<MTElse>even</MTIf>">
エントリーの内容を出力する部分
</div>
</MTEntries>

4.繰り返し回数を出力する

__counter__変数を使うと、繰り返しの1回ごとに、現在の繰り返し回数を出力することができます。
エントリー等を一覧表示する際に、個々のエントリー等に番号を振りたい場合に、この変数が便利です。

例えば、以下のようにすると、エントリーのタイトルの一覧を番号付きで出力することができます。

<p>
<MTEntries>
<$MTVar name="__counter__"$> <$MTEntryTitle$><br />
</MTEntries>
</p>

トラックバック(0)

トラックバックURL: http://www.h-fj.com/mt/mt-tb.cgi/978.

The blog of H.Fujimoto:Movable Type 4のブロックタグ内で使える変数 ブロックタグ内で使える変数を利用して、奇数行(... 続きを読む

MT4出たので早速試してみる。MT-SubCatCountプラグインの代わりが、変数タグで実現可能か実験しました。 続きを読む

両目にバンソーコー - 何故だ・・・ (2008年2月18日 12:22)

Movable Type 4 ではブロックタグの中で下記の変数が使える。 変数名変数が取る値 __first__繰り返しの1回目なら真。それ以外... 続きを読む

このブログのアーカイブページでも使ってるストライプリスト。これは通常手作業でスタ... 続きを読む

コメントする