Lightboxで画像のタイトルを表示する

Lightboxプラグインで自動化という記事で、「a要素にrel="lightbox" を毎回書くのは大変なので、自動化させたいが、ソースコードを書きかえるのは面倒だし、間違いのもとにもなりですし、かといって完全に自動化するのもどうか?」と書きましたが、Lightboxで画像のタイトルを表示させるには、画像へのアンカーにtitle属性がないといけません。Lightboxを使わないにしろ、title属性が有るに越したことはありません。

というわけで、禁断のソースコードに手を加えます(笑)必ずバックアップを取ってください。

mt/lib/MT/Asset/Image.pmに手を加えます。334行目あたりの

if ( $param->{thumb} ) {
    $text = sprintf(
        '<a href="%s"><img alt="%s" src="%s" %s %s /></a>',
        MT::Util::encode_html( $asset->url ),
        MT::Util::encode_html( $asset->label ),
        MT::Util::encode_html( $thumb->url ),
        $dimensions,
        $wrap_style,
    );
}

if ( $param->{thumb} ) {
    $text = sprintf(
        '<a href="%s" title="%s"><img alt="%s" src="%s" %s %s /></a>',
        MT::Util::encode_html( $asset->url ),
        MT::Util::encode_html( $asset->label ),
        MT::Util::encode_html( $asset->label ),
        MT::Util::encode_html( $thumb->url ),
        $dimensions,
        $wrap_style,
    );
}

と書きかえれば、画像へのアンカーにtitle属性が付加されます。一応アイテムの名前が、data-caption="アイテムの名前"というふうに挿入されます。

参考までに、

MT::Util::encode_html( $asset->label ),

MT::Util::encode_html( $asset->description ),

とすれば、アイテムの概要が挿入されます。

関連エントリー