top

サムネイルに連番をつける (MT4.1~)

サムネイルに連番をふりたいというご質問をいただいたので、エントリーにもアップしておきます。 ここでいうサムネイルとは<MTEntryAssets>で自動生成させたサムネイルのことです。

実はMT4で自動生成させるサムネイルにはCounter Pluginやカウンター変数__counter__では上手く連番をふることが出来ません。理由は以下の記事の前半に書いてある通り。
サムネイルリストからブログ記事(エントリー)にリンクを張る(2) MT4.1完成版
つまり、<MTEntries>以下にカウンターをセットすると画像のあるなしに関わらず、全てのエントリーを対象に連番がふられるので、連番ではなく飛び番になってしまうのです。
フォトログのように全てのエントリーに画像がある場合なら連番になりますが、その場合でも、img要素の中で連番をふりたい場合、つまり<MTEntryAssets>以下で連番が欲しい場合は上手く機能しなくなります。<MTEntryAssets>以下にカウンターをセットすると「その記事に所属する画像の中」で数えるので、エントリー毎に1から順に繰り返されてしまうのです。

そこで登場したのがopモディファイア。これでカウンターをセットすれば、記事に関係なく表示されているサムネイルに対して連番がふられます。サムネイルリスト4.1完成版では、この連番を利用してサムネイル数をコントロールしています。ただ、サムネイルリストではふった連番を表示させる必要がなかったため、連番を取り出すMTタグは記述していませんでした。ここではそれを書いておきます。

基本的にMTSetVarで設定したものはMTGetVarで表示させることが出来ます。

なので、<MTSetVar name="imgcount" op="++">でセットしたものなら、<$MTGetVar name="imgcount"$>で数字を取り出すことが出来ます。具体例を書いてみました。

<ul>
<MTSetvar name="imgcount" value="0">
<MTEntries lastn="10">
<MTEntryAssets type="image" lastn="1">
<MTSetVar name="imgcount" op="++">
<li>
<$MTGetVar name="imgcount"$>
<a href="<$MTEntryPermalink$>" title="<$MTEntryTitle$>">
<img src="<$MTAssetThumbnailURL height="70"$>" />
</a>
</li>
</MTEntryAssets>
</MTEntries>
</ul>

この例だとサムネイルの前に連番の数字が表示されます。青字が数字をふるためのMTタグで、赤字がふった数字を表示させるためのMTタグです。
<$MTGetVar name="imgcount"$>は好きなところに入れればいいので、例えば<li>の下ではなく、imgタグの中に入れたら、

<img src="<$MTAssetThumbnailURL height="70"$>" id="<$MTGetVar name="imgcount"$>" />

のように連番をサムネイル毎のID番号として使うことも可能です。これが出来るとJavascriptのエフェクト効果などにも使えるようです。アイデア次第でいろいろな使い方が出来ると思います。
見本例は必要最低限のシンプルな記述にしていますので、必要に応じてclassや「サムネイルを全部正方形にするカスタマイズ」「サムネイルのサイズを自在に操る」等を追加して工夫してみて下さい。

なお、こちらこちらのように既に連番がふられた状態でのタグを使っている場合は、番号を表示させたい箇所に<$MTGetVar name="imgcount"$>を追加するだけでいいです。

<注>MT4.1以降専用です。4.0、4.01では使えませんのでご注意下さい。