WordPress: создание фотогалереи без плагинов
Есть под wordpress замечательный плагин для создания галерей — NextGen Gallery. Всем хорош, кроме одного крайне важного момента — нет возможности оставлять комментарии к фоткам. Как выяснилось, чтобы создать фотогалерею на основе вордпресса, плагины совсем не нужны. Вордпресс имеет на борту весь необходимый функционал для решения этой задачи.
С точки зрения вордпресса, галерея — это всего лишь набор прикрепленных к записи изображений, которые выводятся посредством шорткода gallery. При загрузке изображения стандартными средствами, вордпресс создает отдельную запись для изображения, post_type которой равен attachment и она является дочерним элементом записи, к которой прикреплена сама галерея.
Так же полезно будет узнать, как работает иерархия шаблонов в вордпрессе. Табличка с офф.сайта наглядно иллюстрирует этот момент
Видно, что для прикреплений вордпресс ищет файл шаблона с названием, соответствующим mime-типу прикрепления. Т.е. в нашем случае для прикрепленных файлов формата JPG mime-тип будет image/jpeg. Вордпресс попытается найти файлы image.php, jpeg.php, image_jpeg.php, и, наконец, будет использовать attachment.php как универсальную основу.
Создание шаблона для отдельного изображения
Для этих целей мы скопируем single.php (в крайнем случае — index.php), переименуем его в image.php и немного доработаем его функционал.
Сделаем ссылку для возврата к странице галереи. Как уже говорилось, изображение — это дочерний элемент записи с галереей, и таким образом нам всего лишь нужно сослаться на родительскую запись с помощью $post->post_parent. Следующим кодом мы получаем ссылку:
[cc lang=»php»]fancybox необходимые скрипты, распаковываем и кладем в подпапку js(если не существует — создаем) в папке с шаблоном.
2. Прописываем загрузку скриптов в коде шаблона до тега
[cc lang=»html»]
$(document).ready(function() {
$(".various1").fancybox({
'titlePosition' : 'inside',
'transitionIn' : 'none',
'transitionOut' : 'none'
});
[/cc]
3. Выводим изображение
[cc lang=»php»]