/ Сайтостроение / Wordpress / Несколько миниатюр записи

Несколько миниатюр записи

HIT

11.04.2017

1918

В некоторых случаях необходимо, чтобы у записи было несколько миниатюр. Например, если запись это товар с несколькими изображениями. Добавим эту возможность при редактировании записи.

Плагин Multiple Featured Images

После установки плагина, необходимо регистрировать (в functions.php) каждую дополнительную миниатюру:

//Добавление дополнительной миниатюры
add_filter( 'kdmfi_featured_images', function( $featured_images ) {
    $args = array(
        'id' => 'featured-image-2',
        'desc' => 'Your description here.',
        'label_name' => 'Featured Image 2',
        'label_set' => 'Set featured image 2',
        'label_remove' => 'Remove featured image 2',
        'label_use' => 'Set featured image 2',
        'post_type' => array( 'post' )
    );

    $featured_images[] = $args;

    return $featured_images;
});

Выводятся дополнительные миниатюры так:

kdmfi_the_featured_image( 'featured-image-2', 'full' );

Плагин Multiple Featured Images (10 000 скачиваний) не содержит лишнего кода, отлично подходит для случаев когда нам точно известно количество необходимых дополнительных миниатюр.

Плагин Featured Galleries

Сделать добавление дополнительных миниатюр в виде единой галереи (как в woocommerce) можно с помощью плагина Featured Galleries (4000 скачиваний)

После установки в редакторе записи появляется виджет справа, в него и добавляем миниатюры.

Выводятся изображения таким образом:

<?php $galleryArray = get_post_gallery_ids($post->ID); ?>
foreach ($galleryArray as $id) { ?>

	<img src="<?php echo wp_get_attachment_image_url( $id, 'thumbnail' ); ?>">

<?php } ?>

thumbnail — задаем размер миниатюры.

Если нужно применить данную возможность для произвольных типов записей — нужно добавить функцию:

function add_featured_galleries_to_ctp( $post_types ) {
    array_push($post_types, 'custom_post_type'); //array('post','page')
    return $post_types;
}
add_filter('fg_post_types', 'add_featured_galleries_to_ctp' );

Условие — есть ли изображения галереи:

<?php $galleryArray = get_post_gallery_ids($post->ID); ?>
	
<?php if ( !empty($galleryArray) ): ?>
	
<h2>Галерея изображений</h2>

<?php foreach ($galleryArray as $id) { ?>

<a href="<?php echo wp_get_attachment_image_url( $id, 'full' ); ?>"><img src="<?php echo wp_get_attachment_image_url( $id, 'medium' ); ?>"></a>

<?php } ?>
	
<?php else: ?>
  
<?php the_post_thumbnail('medium'); ?>
  
<?php endif; ?>

Обнаружил момент, что при выборе изображений для галереи отсутствует стандартная фильтрация (или дополнительная) элементов медиабиблиотеки. Это исправляется следующей функцией:

function show_fg_sidebar( $show_sidebar ) {
    return true; // ($show_sidebar comes in a false)
} add_filter( 'fg_show_sidebar', 'show_fg_sidebar' );

Тэги: ,

Поделится информацией с друзьями

  • Похожие записи
  • Комментарии
  • Вложения
Галерея изображений Masonry

Галерея изображений Masonry

Masonry — это принцип построения изображений (блоков) занимая все пространство, по аналогии со строительной кладкой. Галерея изображений Masonry jquery Вставляем изображения в общий div с классом grid, каждое изображение в Читать далее »

/
Выравнивание миниатюр товаров

Выравнивание миниатюр товаров

Идеальная ситуация, когда мы загружаем изображения для товаров (хотя бы для главного изображения) квадратными. т.е. заранее подготовленными, откадрированными. Но бывают случаи, когда на сайт начинают заливаться изображения разных пропорций. Сделаем Читать далее »

/
Плагин: Миниатюра таксономии

Плагин: Миниатюра таксономии

Обычно для добавления изображения (миниатюры) таксономии импользую плагин Advanced Custom Fields. Плагин хороший, но довольно тяжеловат, т.к. является мощным многозадачным плагином. Есть более легковесная альтернатива — плагин taxonomy term image Читать далее »

/

Добавить комментарий

Пока нет комментариев. Будь первым!

Несколько миниатюр записи
Наводим порядок в админке
Рекомендации для васНаводим порядок в админкеOpttour.ru
Спасибо! Наш менеджер свяжется с Вами в течении 5 минут.