Плагин галереи на WordPress от Meline
Особенностью плагина является то, что он создает удобную административную панель для загрузки фото в WordPress с возможностью загрузки нескольких фото сразу, добавления одного и того же фото в несколько альбомов и возможностью выводить фото на фронт-енд в том виде в котором вы пожелаете. Вы сами можете сверстать желаемый вид отображения галереи! Так же можно добавлять описания в сам альбом, редактировать описание фото и удалять фото из альбомов.
После установки плагина в админке создастся новая вкладка «Фото», в вы ней добавляете запись, как с обычными постами в Worpress. Эта запись будет являться альбомом. Когда вы зайдете в альбом, то в контенте вы можете задать его описание, а после поля ввода контента вы увидите блок с возможностью добавить фото с описанием.
Внешний вид фото в админ панели будет такой:
Чтоб загрузить новое фото в альбом нажмите на кнопку «Загрузить». Выбор фото будет производиться стандартными средствами WordPress. Так же вы можете выбрать фото из ранее используемых в Wordpress, которые уже загружены. Единственное ограничение — вы не можете добавлять одинаковые фото в альбом. Если вы выберете то фото, что у вас уже добавлено — при сохранении ничего не произойдет. После выбора фото вы можете добавить описание, а можете его не добавлять, тогда под фото в админ панели появится надпись: У данного фото нет описания. При желании вы всегда можете его изменить, нажав кнопку «Изменить запись» под фото в альбоме.
Для сохранения данных нажмите кнопку «+ Добавить фото» или «Сохранить изменения» при редактировании.
Что б удалить фото из альбома с комментарием следует нажать кнопку «Удалить под фото в альбоме». Думаю, ничего сложного!
Если в загрузчике фото WordPress вы выберете несколько фотографий форма ввода преобразуется
Скачать плагин можно здесь: git. Просто добавьте скачанную папку в папку плагинов на вашем сайте и запустите его в админке.
Так же можно добавлять миниатюрку к записям-альбомам. Список альбома выводится как обычный список постов wp на странице шаблона. Таким образом вывод альбомов вы можете стилизировать как пожелаете:
<?php
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args = array(
'post_type' => 'photo',
'paged' => $paged,
'posts_per_page' => 4,
'has_archive' => true
);
query_posts($args);
if (have_posts()) :
while (have_posts()) : the_post();
$col++;
$valalbText = get_field( "albText" );
$img= get_the_post_thumbnail( $post->ID, 'large' );
$thumbnail_src = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ));
?>
<div class="conteiner">
<div class="blockAlb">
<div class="cardItem">
<a href="<?php echo get_the_permalink() ?>" class="image_link"><div class="cover"></div>
<?php
if ( has_post_thumbnail() ) {
$image_url = wp_get_attachment_image_src( get_post_thumbnail_id(), 'large' );
$image_attributes = wp_get_attachment_image_src( get_post_thumbnail_id(), 'thumbnail', $icon );
?>
<div class="newsImgCard PhtoImgCard"><img src="<?php echo $thumbnail_src[0] ?>"></div>
<?php
}
?>
</a>
<div class="cardDesc">
<h4><?php echo get_the_title() ?></h4>
<p><?php echo get_the_content() ?></p>
</div>
</div>
</div>
</div>
<?php endwhile; endif;?>
А вывод фото осуществляется таким методом:
<?php
while ( have_posts() ) : the_post();?>
<?php
$args = array(
'post_type' => 'attachment',
'post_parent' => $post->ID,
'numberposts' => ''
);
$attachments = get_posts( $args ); ?>
<?php if ( $attachments ) {
foreach ( $attachments as $attachment ) {?>
<?php $image_attributes = wp_get_attachment_image_src( $attachment->ID );
$image = wp_get_attachment_image_src( $attachment->ID, 'large' );
$sel = $wpdb->get_row("SELECT post_content FROM wp_posts WHERE post_title = $attachment->ID AND post_parent = $post->ID ");?>
<div class="PhotoItem">
<img src="<?php echo $image_attributes[0]; ?>" alt="">
</div>
<?php } ?>
<?php
}
endwhile; ?>
Вы можете прописать текст для вывода фото в файле single, который служит для выведения одной записи блога или в файле single-photo.php как это сделала я, что б у записей блога и у страницы альбома были разные шаблоны. Для этого вам нужно single-photo.php объявить в functions.php. Мы проверяем — если находимся в категории фото, то вызываем этот файл. Здесь /photo — url страницы где будут выводиться альбомы.
if (in_category('photo/*/')) {
include(TEMPLATEPATH.'/single-photo.php');
}