[MT4]ブログ記事を横に並べて高さを揃えるで、MTCounterプラグインを紹介しましたが、mixiでmiyaさんにコメントをいただいて、いろいろ調べた結果、MT4.1以降なら、標準機能で実現できることがわかりました。
ポイントは、opモディファイアです。
まず、<MTSetVar name=”xxx” value=”n”> で、変数を設定します。
xxx は任意の変数名、nは初期値です。
そして、ループの中で <MTSetVar name=”xxx” op=”++”>とやると、xxxの値が1加算されます。
値を評価するときは、MTIfタグを使います。
たとえば、xxxの値が、3で割り切れるかどうかを判断するには、
<MTIf name=”xxx” value=”3″ op=”mod” eq=”0″>
とすれば良いわけです。
Movable Typeのヘルプ「MT4.1で強化されるMTタグの新機能」によると、下記が使えます。
- add または +
- 加算
- sub または –
- 減算
- mul または *
- 乗算
- div または /
- 除算
- mod または %
- 剰余
- inc または ++
- インクリメント
- dec または —
- デクリメント
これを、MTCounterプラグインの機能に置き換えてみると、
MTCounter → MTSetVar name=”xxx” value=”n”(初期値設定)
MTCounterValue → MTGetVar name=”xxx”(カウンタ値を表示)
MTCounterPlus → MTSetVar name=”xxx” op=”++”(加算)
MTCounterMinus → MTSetVar name=”xxx” op=”–“(減算)
MTCounterIfEqual → MTIf name=”xxx” eq=”x”(カウンタ値がxと同じ)
MTCounterIfLess → MTIf name=”xxx” lt=”x”(カウンタ値がxより小さい)
MTCounterIfMore → MTIf name=”xxx” gt=”x”(カウンタ値がxより大きい)
MTCounterIfOdd → MTIf name=”xxx” value=”2″ op=”mod” ne=”0″(奇数)
MTCounterIfEven → MTIf name=”xxx” value=”2″ op=”mod” eq=”0″(偶数)
MTCounterIfMod → MTIf name=”xxx” value=”n” op=”mod” eq=”x”(nで割った余りがx)
と言う感じで、いちおう、標準機能で代替出来ます。
奇数偶数の判断はできないので、2で割って余りが出るかどうかで判断します。
サンプル
ブログ記事一覧で、3件ごとにアホになる
<MTSetVar name="loopcount" value="0">
<MTEntries>
<MTEntryTitle><MTEntryBody>
<MTSetVar name="loopcount" op="++">
<MTIf name="loopcount" value="3" op="mod" eq="0">アホ!</MTIf>
</MTEntries>
ここで注意です。
MTSetVar に opモディファイアをつけると、演算した後の値が格納されます。
演算するだけで変数の値を変えたくない場合は、MTGetVarを使います。
書き方が煩雑ですが、汎用性がありそうですね。
この記事を書いた人
-
FAシステムメーカー、国内最大手印刷会社製版部、印刷・ウェブ制作会社を経て、家庭の事情で実家に帰省して独立
現在はフリーランスと制作会社シニアディレクターのマルチワーク
ウェブ制作のほぼ全般を見渡せるディレクター業務が主だが、デザイン・コーディングも好き
1997年ブログ開設
WordPressコミュニティには2011年から参加
WordCamp Kansai 2016 セッションスピーカー
WordCamp Tokyo 2023 パネルディスカッションパネラー
WordBench京都、WordBench神戸、WordPress Meetup八王子など登壇多数
最新の投稿
ご質問・ご相談などありましたら
お気軽にお問い合わせください
資料請求・お問い合わせにはメールアドレスが必要です
コメントを残す