Сделал я однажды сайт на WordPress’е для альянса в одной игре, на которой сижу примерно с лета. Глава альянса выложила несколько скриншотов в посте, и я чуть в обморок не упал.
А потому, что когда выкладываю я, они у меня оптимизированы по высоте и ширине. Тут же изображения вылезали за пределы страницы. Но и это не самое страшное. Страшное началось, когда я решил посмотреть на всё это безобразие через браузер смартфона. Вот где мрак и ужОс.
Восстав из обморока я немного подумал… и сделал галерею с адаптивным дизайном для WordPress.
Главная задача моей галереи сделать так, чтобы при публикации с мобильного можно было бы выкладывать фото на страницу так как это делается обычно. Добавится одно простое действие. О нём далее.
Делаем галерею
Основная идея в том, чтобы до картинок поставить (просто написать) в пост открывающий шоткод, а после них — закрывающий.
Примерно вот так:
[mygallery] Картинка 1 Картинка 2 Картинка 3 ... Картинка N [/mygallery]
Т.е. по сути, мы лишь добавим два слова (в квадратных скобках) в пост! Это делается запросто как с мобильного приложения, так и из десктопной версии.
Но прежде чем начать, я вас немного напугаю. Так надо, чтобы потом ко мне не было претензий.
- если вы не уверены в своих навыках веб-программиста,
- если у вас нет доступа к сайту по FTP (чтобы если что откатить всё обратно),
- если вы хронический неудачник (так бывает),
то лучше предварительно проконсультируйтесь со специалистом и закажите все необходимые работы у него. Имеются противопоказания!
Потому, что всё что вы делаете с сайтом, вы делаете на свой страх и риск, а я тут совершенно ни при чём и даже рядом не стоял)
1. Для начала лезем в function.php активной темы и добавляем наш шоткод, вставив вот этот код:
//mygallery function code_mygallery($atts, $content=""){ return '<div class="gall">'.do_shortcode($content).'</div>'; } add_shortcode("mygallery", "code_mygallery");
Можно сделать это в отдельном плагине, но я решил в этот раз не плодить сущности.
2. Теперь, добавляем в style.css активной темы следующие стили:
.gall{ display:block; margin:10px 0; text-align:center; } .gall a, .gall img {display:inline-block;} .gall img{ margin: 10px; -webkit-border-radius: 3px; -moz-border-radius: 3px; border-radius: 3px; box-shadow: 1px 1px 2px rgba(0,0,0,0.5); padding: 5px; background-color: #fff; max-height:500px; max-width:100%; } .gall p{ padding:0; margin:0; display:inline !important; }
3. И последний финт. У меня подключен плагин Easy FancyBox. Он помогает красиво открывать более крупную версию картинки при клике на ее миниатюру.
Картинки кликабельны.
Так вот, в галерее которую мы сейчас делаем, это тоже можно использовать. Ставим плагин Easy FancyBox и подключаем к теме js-файл (или вписываем нужный код в уже подключенный).
Вот код.
$('.gall img').removeAttr('width'); $('.gall img').removeAttr('height'); $(".gall p > img").unwrap(); $(".gall p a img").parent('a').unwrap(); $(".gall > img").each(function(e){ $(this).wrap('<a></a>'); $(this).parent('a').attr('href', j(this).attr('src')); }); $('.gall a').attr('rel', 'gall').fancybox();
Если будете именно подключать новый js-файл, то код, предложенный выше, заверните вот в такую обёртку:
var j = jQuery.noConflict(); j(document).ready(function($) { КОД ПРЕДЛОЖЕННЫЙ ВЫШЕ });
Как это работает?
Всё просто.
- Шоткод создаёт вокруг наших картинок контейнер с классом gall,
- JavaScript обрамляет каждую картинку в ссылку, с помощью которой плагин Easy FancyBox будет красиво ее открывать при клике для просмотра,
- ну а стили визуально приведут картинки в посте к нужному размеру по высоте и создадут рамки/тени.
Как это выглядит?
А выглядит всё примерно так, как на скриншотах (картинки кликабельны).
Вот десктопная версия.
Здесь я кликнул по картинке в галерее и смотрю ее увеличенную версию с помощью плагина.
А так галерея выглядит на экране мобильного. Как видите, теперь картинки не портят адаптивный дизайн сайта.
Миленько?)
Всё что потребовалось — добавить код в трёх местах и теперь картинки выводятся красиво без лишних усилий.
В общем — пользуйтесь на здоровье.
А на этом сегодня всё.
С вами был Доктор Лексиум.
Подписывайтесь, делитесь ссылкой на этот блог.
Всего вам доброго.
Напишите комментарий