Сделать все картинки кликабельными в Worpdress

13 Май 2013

Метки: wordpress, кликабельные картинки, отображение картинок wordpress

В продолжение статьи про кликабельные миниатюры, предлагаю Вам немного видоизмененный скрипт, с помощью которого можно сделать все картинки в статье в стиле Lightbox.

Допустим, для того, чтобы сэкономить место на странице, Вы разместили картинку большого размера принудительно уменьшив её. Но Вам хочется, чтобы при клике на неё открывался lightbox с увеличенным изображением.  Это сделать несложно, особенно пригодится в тех случаях, когда на сайте множество таких моментов.

Опять же, открываем файл ваших javascript скриптов и вставляем следующий код:


jQuery(document).ready(function($){

		$("#page a img").each(function(){
			var galleryid = Math.floor(Math.random()*10000);
			p_h=$(this).attr('src');
			//alert(p_h);
			p_a=$(this).parent();
			if(p_a.attr('href').search('.jpg')==-1 & p_a.attr('href').search('.png')==-1 & p_a.attr('href').search('.gif')==-1 & p_a.attr('href').search('.jpeg')==-1 & p_a.attr('class').search('nolightbox')==-1){

				p_a.attr('href',p_h);
			}
			if(p_a.attr('class').search('nolightbox')==-1){
				p_a.colorbox({rel:galleryid, maxWidth:"95%", maxHeight:"95%"});
			}
		});
});

Расскажу подробно.
#PAGE – это ваш блок (контейнер html) с контентом страницы.
Функция ищем все картинки под ссылками, т.е. не ссылки на картинки, а ссылка на другую страницу (или ЧАЩЕ ВСЕГО) страницу вложения. Ссылка остается, а функция присваивает ей lightbox статус, что делает её кликабельной.
Зачем нужна строка условий? Все просто. Если вдруг ссылка является ссылкой на изображение, то мы не изменяем её href, а просто делаем lightbox…это нужно для тех случаев, когда отображается маленькая картинка, а ссылка идет на оригинал.

Lightbox с миниатюры на оригинал!

Теперь Вы знаете, как сделать все картинки под ссылками а-ля lightbox.
А что, если Вам нужно сделать ВООБЩЕ ВСЕ картинки, даже без ссылок, в стиле lightbox.
Ниже я приведу пример скрипта, который, кстати, используется в портфолио (или когда-то использовался, если что) у меня на сайте.
Так вот, оригинально html такой:

<img src="путь/kartinka-160x120.jpg" alt="картинка"/>

Как превратить в lightbox? Вот таким образом:

jQuery(document).ready(function($){
	$(".entry img").each(function(){
		var i_src=$(this).attr('src');
		var i_alt=$(this).attr('alt') || '';
		var i_title=$(this).attr('title') || '';
		a_href=i_src.replace(new RegExp("-[0-9]{2,3}x[0-9]{2,3}"),"");
		$(this).replaceWith('<a href="'+a_href+'" title="'+i_alt+'" class="lightbox"><img src="'+i_src+'" alt="'+i_alt+'" title="'+i_title+'"/></a>');
	});
	$(".entry a img").each(function(){
		var galleryid = Math.floor(Math.random()*10000);
		th_p=$(this).parent();
		th_p.colorbox({rel:galleryid});
	});
});

Объясню. Ищем все картинки в блоке записи, получаем их параметры (src, alt, title) и затем заменяем html картинки на новый, уже со ссылкой, href которой является видоизмененный через regexp наш alt.
Затем пробегаемся по всем картинкам и их родителей делаем колорбоксами.
Строка galleryid отвечает за формирование уникального REL, если это нужно. Ссылки с одинаковым rel можно листать, как галерею.
Удачи!


 

Похожие записи


© 2006 - 2024, Александр Сергеев