Вывод всех миниатюр товаров на странице магазина WooCommerce
http://69.89.31.200/~horologi/shop/
Я работаю над сайтом выше, и клиент запросил, чтобы на странице магазина отображалась вся информация о товарах, включая все миниатюры товаров. Я скопировал файлы шаблонов WooCommerce в директорию своей темы, чтобы иметь возможность их изменять, и экспериментировал с файлом loop-shop.php. Первое, что я попробовал - просто добавить следующий код в цикл страницы товара:
<div class="images">
<?php if ( has_post_thumbnail() ) : ?>
<a itemprop="image" href="<?php echo wp_get_attachment_url( get_post_thumbnail_id() ); ?>" class="zoom" rel="thumbnails" title="<?php echo get_the_title( get_post_thumbnail_id() ); ?>"><?php echo get_the_post_thumbnail( $post->ID, apply_filters( 'single_product_large_thumbnail_size', 'shop_single' ) ) ?></a>
<?php else : ?>
<img src="<?php echo woocommerce_placeholder_img_src(); ?>" alt="Заглушка" />
<?php endif; ?>
<?php do_action('woocommerce_product_thumbnails'); ?>
Я взял этот код из файла product-image.php. К сожалению, он выводит миниатюры в полном размере. Я не был уверен в "лучшем способе" сделать это. Любая помощь будет очень признателен. Спасибо!
Второй параметр в get_the_post_thumbnail определяет размер изображения, которое вы хотите получить. В данный момент вы передаете:
apply_filters( 'single_product_large_thumbnail_size', 'shop_single' )
но измените это на
apply_filters( 'single_product_small_thumbnail_size', 'shop_thumbnail' )
И вы получите изображение меньшего размера. Вы также можете передать "thumbnail" или любой из пользовательских размеров, которые у вас есть, в этом месте без использования функции apply_filter.

Вместо использования shop_thumbnail
или shop_single
, вы можете попробовать указать размеры в формате array(ширина, высота)
.
Просто замените эту строку в вашем коде
apply_filters( 'single_product_large_thumbnail_size', 'shop_single' )
на
apply_filters( 'single_product_large_thumbnail_size', array(300, 300) )
