エントリー内の画像をリストアップするプラグイン(その2)

昨日に続いて、エントリー内の画像をリストアップするプラグインの使い方を解説します。

このプラグインで追加されるタグを紹介します。
全部で19個のタグがあり、数が多いので、今日と明日に分けて紹介します。

MTEntriesHaveImagesタグ

画像(imgタグ)を含むエントリーをリストアップするコンテナタグです。
以下のアトリビュートを使うことができます。

アトリビュート 内容
lastn="x" 出力するエントリーの数をx件までにします。
img_lastn="x" 最大でx件の画像の画像を検索します。
lastn="x"も指定した場合、lastnとimg_lastnのどちらかの条件が満たされるまで画像を検索します。
limit_per_entry="x" 1つのエントリーにつき、x件まで画像を検索します。
sort_order="ascend|descend" もっとも古いエントリーから画像を検索するか(ascend)、新しいエントリーから検索するか(descend)を指定します。
省略した場合は新しいエントリーから検索します。
img_sort_order="ascend|descend" 見つかったエントリーを古いものから順に出力するか(ascend)、新しいものから順に出力するか(descend)を指定します。
省略した場合は新しいエントリーから出力します。
force="1" カテゴリーアーカイブテンプレートと日付アーカイブテンプレートの中でこのタグを使った場合、そのアーカイブのエントリーだけが検索の対象になります。
これらのテンプレートの中でもすべてのエントリーを検索対象にしたい場合は、このアトリビュートを指定します。

なお、MTEntriesHaveImagesタグのコンテナの中では、MTEntry系のテンプレートタグ(MTEntryTitleなど)を使うことができます。

MTEntryImagesタグ

エントリー内の画像をリストアップするコンテナタグです。

MTEntriesHaveImagesタグと同じアトリビュートを使うことができます。
それに加えて、「columns="x"」「sort_order="random"」「random_lastn="x"」「include_cats="カテゴリー1|カテゴリー2|・・・|カテゴリーn"」「exclude_cats="カテゴリー1|カテゴリー2|・・・|カテゴリーn"」のアトリビュートも使うことができます。

●「columns="x"」
画像を表組み(tableタグ)にしたい場合、「columns="x"」のアトリビュートで1行あたりの画像の数を指定します。
タグの入れ方によって、以下の3種類の動作をします。

・単独で使う場合
このコンテナタグを単独で使った場合、インデックステンプレートとエントリーアーカイブテンプレートでは、すべてのエントリーから画像が検索され、画像が順に出力されます。
また、カテゴリーアーカイブテンプレートと日付アーカイブテンプレートでは、そのアーカイブから画像が検索され、順に出力されます。

・MTEntriesHaveImagesタグのコンテナの中で使う場合
MTEntriesHaveImagesタグのコンテナの中で使った場合は、出力中のエントリーに含まれる画像がリストアップされます。

・「this_entry="1"」のアトリビュートをつける場合
「this_entry="1"」のアトリビュートをつけると、現在の出力対象になっているエントリーから画像が検索されます。
MTEntriesタグのコンテナの中や、エントリーアーカイブテンプレートの中で使って、エントリー内の個々の画像の情報を得るのに使うことができます。

●「sort_order="random"」と「random_lastn="x"」
画像をランダムに表示したい場合、「sort_order="random"」と「random_lastn="x"」のアトリビュートを指定します。
「random_lastn="x"」のxでは、ランダムに表示する画像の数を指定します。
また、以下のようにすれば、「最新の画像からy個を検索し、そこからランダムにx個を表示する」というようなこともできます。

<MTEntryImages sort_order="random" random_lastn="x" img_lastn="y">
画像を出力する部分
</MTEntryImages>

●「include_cats="カテゴリー1|カテゴリー2|・・・|カテゴリーn"」
「カテゴリー1」等で指定したカテゴリーの画像のみを出力します。
MTEntryImagesタグを単体で使う(MTEntriesHaveImagesタグの内側で使わない)ときに利用できます。

●「exclude_cats="カテゴリー1|カテゴリー2|・・・|カテゴリーn"」
「カテゴリー1」等で指定したカテゴリーの画像を除外して出力します。
MTEntryImagesタグを単体で使う(MTEntriesHaveImagesタグの内側で使わない)ときに利用できます。

MTEntryImageSrcタグ

見つかった画像(imgタグ)の中から、画像のアドレス(「src="x"」のxの部分)を取り出します。

「regex="正規表現"」というアトリビュートを指定することができます。
これを使うと、画像のアドレスを正規表現で置換することができます。

例えば、Movable Typeのアップロードの機能を使い、サムネールを出力するようにすると、元の画像のファイル名に「-thumb」が付加されたファイル名のサムネールができます。
この状況で、サムネールをクリックした時に、元の画像が表示されるようにしたい場合、以下のようにタグを組みます。

<a href="<$MTEntryImageSrc regex="s/(.*)-thumb\.(.*)/$1.$2/"$>"><img src="<$MTEntryImageSrc$>" /></a>

MTEntryImageWidth/MTEntryImageHeightタグ

見つかった画像(imgタグ)の中から、画像の幅(「width="x"」のxの部分)と高さ(「height="y"」のyの部分)を取り出します。

このタグでは、「default="n"」と「cell_size="x,y"」というアトリビュートを使うことができます。
「default="n"]のアトリビュートを指定した場合、imgタグにwidth="x"やheight="y"の部分がない時には、タグの値はnになります。

「cell_size="x,y"」のアトリビュートを指定した場合、横xピクセル/縦yピクセルに収まり、かつ元のwidth/heightの縦横比が維持されるように、幅と高さを計算した値が出力されます。
画像を表組みにし、表の1つ1つのセルのサイズを一定にしたいときに、このアトリビュートが便利です。

例えば、元のimgタグで「width="500" height="200"」と指定されている画像があるとします。
また、MTEntryImageWidth/MTEntryImageHeightタグに「cell_size="400,300"」のアトリビュートを付加しているものとします。
この場合、元の縦横比は5:2なので、400×300に収まり、かつ縦横比が5:2になるような値が出力されます。
具体的には、MTEntryImageWidthタグの出力は400になり、MTEntryImageHeightタグの出力は160(=400の5分の2)になります。

なお、元のimgタグでwidthまたはheightが指定されていない場合、cell_size="x,y"のアトリビュートを付加すると、MTEntryImageWidth/MTEntryImageHeightタグは、それぞれx/yの値をそのまま出力します。
また、default="n"とcell_size="x,y"の両方のアトリビュートを指定した場合、cell_sizeが優先されます。

EntryImageAltタグ

見つかった画像(imgタグ)の中から、「alt="x"」の「x」の部分を出力します。

EntryImageTitleタグ

見つかった画像(imgタグ)の中から、「title="x"」の「x」の部分を出力します。

EntryImageClassタグ

見つかった画像(imgタグ)の中から、「class="x"」の「x」の部分を出力します。

EntryImageIDタグ

見つかった画像(imgタグ)の中から、「id="x"」の「x」の部分を出力します。

MT Cloud Starter Kit
Movable Typeのプラグイン集「MT Cloud Starter Kit」をぜひご利用ください