lightbox caption

自從使用 Jetpack 的 Tiled Galleries 後,Gallery 變得更吸引,不過配合 WP jQuery Lightbox 後,就不能顯示 caption,這個問題一直很困擾,之前的解決方法是 link 去 Attachment page 而不 link to files,另一個是用 Carousel 取代。不過這兩個方案都是方棄 Lightbox,所以都不是理想方案。

最近再搜尋一下終於有人研究出如何令 Lightbox 一定要讀取 caption,方法如下:

在 jquery.lightbox.js 檔案內,第 92 行加上以下 code.

else if(jqThis.parent().find('.tiled-gallery-caption').html()){
caption = jqThis.parent().find('.tiled-gallery-caption').html();
captionText =jqThis.parent().find('.tiled-gallery-caption').text()
}

變成

if (jqThis.parent().next('.gallery-caption').html()) {
var jq = jqThis.parent().next('.gallery-caption');
caption = jq.html();
captionText = jq.text();
} else if (jqThis.next('.wp-caption-text').html()) {
caption = jqThis.next('.wp-caption-text').html();
captionText = jqThis.next('.wp-caption-text').text();
} else if(jqThis.parent().find('.tiled-gallery-caption').html()){
caption = jqThis.parent().find('.tiled-gallery-caption').html();
captionText =jqThis.parent().find('.tiled-gallery-caption').text()
}

更改後,需要再 minify 這個 javascript 檔,因為 Lightbox 是會直接讀最 jquery.lightbox.min.js
可以到 http://refresh-sf.com/yui 這個網站 minify

另外一個簡單少少的方法是可以更改 wp-jquery-lightbox.php,將第 22 行

define('JQLB_SCRIPT', 'jquery.lightbox.min.js');
改成
define('JQLB_SCRIPT', 'jquery.lightbox.js');

這樣會行未 minify 版本,會減慢少少速度。

這裏有 Lightbox 1.4.5 已更改和 minify 版本,大家可以直接最代原本的檔案就可以了:jquery.lightbox.7z