Add-lightbox を HighSlide 対応に

WordPressに乗り換えた時に、Lightbox2も組み込んでみたんですが、どうも見慣れた感があります。当初 Mdkart 氏作成の「add-lightbox」プラグインを入れて使っていたんですが、ほかに画像表示のエフェクトがないかと探していたところ、おで氏作成の「wpj-highslide」を発見。
タグ付きの書式で書けば、highslideが適用されるとのこと…。
highslide はサムネイル画像をクリックすると拡大表示し、カーソルキーで前の画像、次の画像、マウスでドラッグ(移動)ができるもの。CSSを切り替えることによって、いろんなパターンに適用できます。

 

タグは書かなければいけないみたいだから、Add-lightbox をいじってなんとかならないものかとやってみました。テンプレートの編集は必要ですが、見事自動的にタグを付けることに成功。私は英語が堪能ではないため、日本語のことしか考えていない(すみません)。

とはいえ、勝手に改造したモノを配布するわけにもいかず、作者の方(Mdkart氏)に連絡を取ってみようと決心。しつこいようですが、私は英語が堪能ではないため、エキサイトさんに翻訳をお願いすることに(笑)。

送った内容は

あなたが作ったプラグインを改造して「highslide用」に改造しました。
配布してもいいっすか?

みたいな感じで。

その日の夜に返事をいただいた。

大まかな内容として

ちゃんと作り直して、私のブログに掲載しましょう。
その方がカンタンですし、最善策じゃないかと…。

という返事がきた。

追記:返信があり、

Lightboxプラグインと、そう大差ないだろうから、
あなたのBLOGで変更点を掲載しちゃってください。

みたいな返事がきました。Thank You, Mdkart!

確かにサポートとかのコトを考えると、私のスキルではどこまでできるかわかりませんしねぇ。
↑もうこの選択肢はなくなりました。

お急ぎで試したい方は、add-lightboxをダウンロードして、以下の部分を修正すれば動くんじゃないかと…。

13行目あたりからある以下4行のコードを (original code)

$pattern = "/<a(.*?)href=(''|?")([^>]*).(bmp|gif|jpeg|jpg|png)(''|?")(.*?)>(.*?)<?/a>/i";
$replacement = ''<a$1href=$2$3.$4$5 rel="lightbox[%LIGHTID%]"$6>$7</a>'';
$content = preg_replace($pattern, $replacement, $content);
$content = str_replace("%LIGHTID%", $post->ID, $content);

以下の4行に差し替える。 (modifed code)

$pattern = "/<a(.*?)href=(.+?.jpg?"|.+?.jpeg?"|.+?.png?"|.+?.gif?")(>)(<img .+)(alt=?")(.*)(?" width.+)<?/a>/i";
$replacement = ''<a$1href=$2 class="highslide" onclick="return hs.expand(this)" id="$6"$3$4$5$6$7</a><div class=?''highslide-caption?'' id=?''caption-for-$6?''>$6</div>'';
$content = preg_replace($pattern, $replacement, $content);
$content = str_replace("", $post->ID, $content);

※「”」がちょっと違う記号になってる場合があるみたいです。ご注意ください。