Neat Design Journal

WordPressにjQueryプラグインのLightboxを導入しました。

ブログ記事内の画像リンクにjQueryプラグインのLightboxを実装しましたのでご紹介します。Lightboxの実装についてはWordPressのプラグインが多数存在しますが、やはり今回もプラグインなしでやってみました。

公式サイトよりダウンロード

Lightboxの公式サイトよりデータ一式をダウンロードします。

Lightbox2
Lightbox is a script used to overlay images on the current page. It's a snap to setup and works on all modern browsers.
favicon
https://lokeshdhakar.com/projects/lightbox2/

サイト上部の「DOWNLOAD」ボタンをクリックするとlightbox2-master.zipがダウンロードされますので解凍してください。ダウンロードしたフォルダ内にはいくつかファイルがありますが、使用するのはdistフォルダ内の以下のファイルです。

  • cssフォルダ
    • lightbox.css
  • jsフォルダ
    • lightbox.js
  • imagesフォルダ
    • close.png
    • loading.gif
    • next.png
    • prev.png

cssフォルダにはlightbox.min.cssjsフォルダにはlightbox.min.jsという圧縮済みのファイルもそれぞれ入っていますのでカスタマイズせずにデフォルトのまま使う方はこちらでも大丈夫です。それぞれのファイルをサーバーにアップしといてください。

HTMLを編集

サーバーへのアップロードが完了したら次はHTMLの編集です。headタグ内の任意の場所に以下のコードを追加します。

<link rel="stylesheet" href="css/lightbox.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="js/lightbox.js" type="text/javascript"></script>

各ファイルへのパスはサイトに合わせて適宜変更してください。

画像にリンクするaタグにrel=”rightbox”を追加

ファイルのアップロード、HTMLの編集が終わったら、次は画像にリンクするaタグにrel="rightbox"を追加します。ところが、既存のaタグに一つ一つ追加していくのはかなりの労力なので、functions.phpに以下のコードを追加します。

// 画像リンクにrel="lightbox"を追加
add_filter('the_content', 'rellightbox_replace');
    function rellightbox_replace ($content){
    global $post;
    $pattern = "/<a(.*?)href=('|")(.*?).(bmp|gif|jpeg|jpg|png)('|")(.*?)>/i";
    $replacement = '<a$1href=$2$3.$4$5 rel="lightbox"$6>';
    $content = preg_replace($pattern, $replacement, $content);
    return $content;
}

これで完成です。以下にサンプルとして画像リンク貼っときます。

よく見かけるやつですね。

※R2.8.19追記 現在は一時的に実装を停止しています。

参考にした記事

【jQuery】これだけで完璧に導入できる[Lightbox]の実装方法。
一時期、多くのサイトで導入され大流行した jQuery プラグイン[Lightbox]の使い方を紹介します。皆様もうご存知でしょうけれど、念のために動作のサンプルを以下のURLに置いておきます。画像をクリックすると背景が...
favicon
https://on-ze.com/blog/1715
【jQuery】これだけで完璧に導入できる[Lightbox]の実装方法。

実装方法は上の記事で理解できたんですが、肝心のrel="lightbox"をどうやって過去記事にも追加するかが謎だったので実装していませんでした。ところが、以下の記事を見つけたので一気に導入できました。

WordPressで画像リンクに「rel=”lightbox”」を追加するためのテーマカスタマイズ | TechMemo
前に挿入した画像にrel=”lightbox”を自動で追加する方法という記事を書きましたが、この方法だとコアファイルを編集するので管理が面倒だなーと思っていました。つい先日もアップデートされましたし・・・ 今回は、コアファイルではなくテーマ
favicon
https://techmemo.biz/wordpress/images-rel-lightbox-functions/
WordPressで画像リンクに「rel=”lightbox”」を追加するためのテーマカスタマイズ | TechMemo

これで過去記事にもこれから書く記事にも画像リンクには自動的に付与されるのでとても便利です。

最後に

いかがでしたでしょうか。できればグループ化も自動的にできればいいんですが、とりあえずやり方が分からないので今のところは後回しです(笑)グループ化するにもグループ名をどうやって自動挿入するか、グループ名をどうするか、その辺がうまいことできればいいんでしょうけど今の私には皆目見当もつきません。でも見つけたら実装したいですね。