Использование скрипта Lightbox 2 в WordPress блоге без плагина
В прошлой статья я рассказал как достаточно легко и быстро подключить простую галерею в WordPress а также добавить в нее эффектное открытие картинок через Lightbox. Для первой задачи мы воспользовались базовыми возможностями системы, а для второй установили соответствующий плагин Lightbox 2. Процесс не занял много времени, да и вообще все выполнить было не так уж сложно. Единственная проблема, которая возникла – автоматическое добавление в код блога много разных дополнительных скриптов. Если быть точнее вот что появляется в Header с использованием модуля:
<script type='text/javascript' src='http://wordpressinside.ru/wp-includes/js/prototype.js?ver=1.6.1'></script> <script type='text/javascript' src='http://wordpressinside.ru/wp-includes/js/scriptaculous/wp-scriptaculous.js?ver=1.8.3'></script> <script type='text/javascript' src='http://wordpressinside.ru/wp-includes/js/scriptaculous/effects.js?ver=1.8.3'></script> <script type='text/javascript' src='http://wordpressinside.ru/wp-content/plugins/lightbox-2/lightbox.js?ver=1.8'></script> <!-- begin lightbox scripts --> <script type="text/javascript"> //<![CDATA[ document.write('<link rel="stylesheet" href="http://wordpressinside.ru/wp-content/plugins/lightbox-2/Themes/Black/lightbox.css" type="text/css" media="screen" />'); //]]> </script> <!-- end lightbox scripts -->
И проблема даже не в том, что столько много кода, ведь по заявлению разработчика плагина в процессе его создания использовались сжатые скрипты и все оптимизировано без лишних деталей. Главная «не состыковка» заключалась в том, что этот код отображался абсолютно на всех страницах блога, а галерея (у меня, например) только на одной. В итоге почти 1000 уников ежедневно грузят все скрипты, при том что 98% никогда эту галерею так и не увидит.
Что ж, будем исправлять этот неэффективный подход, то есть нам нужно заставить отображаться (подключаться) скрипты на страницах блога с галерей. Для этих целей, по сути, существует 2 метода:
- Можно сделать оптимизацию header в wordpress с помощью функций в functions.php, как я рассказывал ранее, исключив ненужный код.
- Использовать стандартный код подключения скрипта вручную без плагина.
Вариант 1. Хак для functions.php
В принципе, теоретически, когда я разбирался с плагином Lightbox 2 понял, что можно исключить ненужный код через header, но к сожалению, «первый подход к снаряду» не принес успеха. Сегодня «поднажал» и за 2-3 часика тестов разных комбинаций таки нашел решение:) Заходим в файл functions.php, где добавляем код:
add_action( 'wp_print_scripts', 'my_deregister_javascript', 100 ); function my_deregister_javascript() { if (!is_single('2969') ) { wp_deregister_script( 'lightbox' ); remove_action('wp_head','lightbox_styles'); } }
Эти строки, во-первых, отключат вызов CSS стилей для оформления, а во-вторых, отменят и само подключение скрипта. Здесь отметим условие !is_single(’2969′) которое означает, что скрипт будет деактивирован на всех страницах сайта кроме поста под указанным ID (именно там в моем случае располагается фотогалерея). Конечно, условие можно менять, размещая просто is_single, is_page и т.п. Важным моментом остается использование всех остальных обозначений – пытался менять название функций – другие не работают. Поэтому данный хак нужно использовать «как есть», меняя лишь условие.
Вариант 2. Ручное подключение скрипта Lightbox 2
Как я уже сказал выше, изначально избавиться от кода скрипта по хорошему не получилось, править сам php исходник планина было бы вовсе не комильфо, поэтому оставался лишь вариант подключения скрипта Lightbox 2 вручную. Тем более, что процесс этот элементарный. Вся информация по нему находится на официальном сайте. Алгоритм действий следующий:
1. Скачиваем архив скрипта Lightbox 2, разархивируем и заливаем на ФТП в любую директорию.
2. Открываем код шаблона wordpress и в файл header.php добавляем:
<?php if (is_single()) { ?> <script type="text/javascript" src="http://wordpressinside.ru/files/lightbox/js/prototype.js"></script> <script type="text/javascript" src="http://wordpressinside.ru/files/lightbox/js/scriptaculous.js?load=effects,builder"></script> <script type="text/javascript" src="http://wordpressinside.ru/files/lightbox/js/lightbox.js"></script> <link rel="stylesheet" href="http://wordpressinside.ru/files/lightbox/css/lightbox.css" type="text/css" media="screen" /> <?php } ?>
Обратите внимание, что я опять использую условие, которое задает вывод кода скрипта только на страницах постов + нужно будет заменить мой путь wordpressinside.ru/files/lightbox на свой.
3. Теперь чтобы применить эффект для картинки для нее указывается специальный HTML параметр rel=»lightbox», например:
<a href="images/image-1.jpg" rel="lightbox" title="my caption">image #1</a>
Собственно, все сложность метода получается в этом rel=»lightbox», так как если для единичных картинок вы сможете его указать, то с галереей не все так просто. К счастью, для этой можно использовать специальный плагин Add LightBox & Title. Процесс установки стандартный – скачали, разархивировали, залили на фтп в /wp-content/plugins/ и активировали.
Главная (и единственная) функция модуля – автоматическое добавление кода rel=»lightbox[POST-ID]» в ссылки картинок блога. Сразу после этого скрипт Lightbox 2 начнет работать корректно. Плагин позволяет работать в wordpress с разными скриптами эффектов изображений – как Lightbox 2, так другими, например, Shadowbox JS.
Какой же из двух подходов лучше?
- Если у вас уже есть стандартная настроенная галерея, то вариант 1 наверное чуть проще и легче применить (меньше нужно сделать телодвижений).
- Плагин Lightbox 2 (первый вариант) имеет хоть какие-то настройки (цвет фона), оригинальный скрипт выглядит сыроватым.
- Конечно, по скорости быстрее будет второй способ, там меньше кода используется, но если учитывать условие вывода скрипта на отдельных страницах с галереей и отсутствие на остальном сайте, то преимущество нивелируется.
В целом, я бы использовал первый метод – плагин Lightbox 2 + хак в functions.php.
P.S. Разрабатывая интернет магазин нужно выбирать функциональные решения из которых magento выделятся за счет гибкости, эффективности и возможности дальнейшего расширения.
Сейчас в рунете проходит интересный конкурс от ВебЭффектора называется Продвижение неизбежно – после старта появилось много достойный претендентов с хорошими постами.
Не ориентируетесь в современных фирмах окон, выбирайте проверенных производителей, пластиковые окна Rehau подарят вашему дому уют совмещая с высоким качеством продукции.
Комментариев - 8 к статье “Использование скрипта Lightbox 2 в WordPress блоге без плагина”
Блог Wordpress Inside поможет вам научиться работать в вордпресс, закрепить и расширить имеющиеся знания. Плагины и шаблоны, разные хаки и функции wp, оптимизация и безопасность системы – все это и намного больше вы сможете найти на страницах нашего проекта!
Если хотите быстро и оперативно получать последние новости и статьи, то рекомендуем подписаться на обновления блога:
- Добавление миниатюры (thumbnail) в RSS для wordpress
- Category SEO Meta Tags – МЕТА данные для категорий и тегов
- 10 плагинов для админ панели WordPress
- LinkGator.ru – биржа вечных ссылок и статей
- Смена рубрики и массовое редактирование wordpress постов
- Paylicense – хостинг с широким спектром услуг
- WP-RecentComments – плагин и виджет последних комментариев
- Безопасность (4)
- Видео (5)
- Возможности (58)
- Начинающим (18)
- Новости (20)
- Оптимизация (13)
- Плагины (66)
- Сервисы (14)
- Хаки и секреты (43)
- Шаблоны (13)
- Плагин WP-PostRatings рейтинга постов в WordPress
- 5 wordpress плагинов для кнопок социальных закладок
- Добавление кнопки Вконтакте, Facebook и Twitter в wordpress блог
- 20 полезных wordpress плагинов для изображений
- Кнопка вконтакте для wordpress блога – разные методы и лучшие плагины
- Установка wordpress плагинов по FTP и через админку
- Кэширование в wordpress – выбираем лучший плагин для кэширования
- Блог про смартфоны
- Seleckis.lv — Журнал Никиты Селецкого
- Блогинг в стиле web 2.0
- Достопримечательности Львова
- Про блоги для блоггеров
- WordpressPlugins.ru
- Ттелефон Explay Titan в Связном
- Ericsson и планка скорости
- Новая линейка от HTC
- Dr.Web Light 7 для Android
- «Дорожная карта» Intel
- Самый популярный сервис платежей – Яндекс.Деньги
- Моделирование. Этапы моделирования.
- Шопинг в Европе и требуемые документы
- Последняя версия Google Chrome вышла с ошибкой
- Порядка 70 процентов не доводят покупки в сети Интернет до конца
- Рекламу в социальных сетях автоматизирует сервис AdCenter

Оцените статью: 

Категории:
Теги:
Интересное решение. Я бы правда сделал по другому.
Срабатывание отвязки по отсутствию определенного тега. Если в записи есть тег «фото» то галерея грузится, если нет, то нет.
Супер, то что нужно :) Куда высылать пиво? :) Работает как часы! Спасибо!
Есть еще сложность в подгрузке сразу целой директории картинок, понятно, что можно бы это сделать все стандартными средствами, но иногда лучше бы сделать все минуя вордпресс.
К примеру, у меня есть галлерея из 400 фоток, если все их подгрузить к посту, то проблема решится, но вот с точки зрения файловой системы будет полный бардак.
Но это уже ерундовая проблема.
Осталось теперь разделить CSS на отдельный для главной страницы, поста, рубрики, страницы и подгружать только нужный, тогда все будет выглядеть более-менее оптимально…
Хорошая качественная статья. Попробую обязательно эту фишку. Побольше бы таких полезных блогов про вордпресс.
Хороший плагин..
надо попробовать
Прикольно. Я последнее время пытаюсь обходится без плагинов.
Спасибо за интересную статью. У себя просто поставил плагин и не парился, однако имеет смысл перевести все же на скрипты, без плагина, ведь в нем могут быть дыры =)
Сергей, подскажите название плагина, пожалуйсто. =)
В начале статьи была ссылочка на другой пост, там где реализация с плагином – http://wordpressinside.ru/beginners/standart-gallery-lightbox/