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="Placeholder" />
<?php endif; ?>
<?php do_action('woocommerce_product_thumbnails'); ?>
そのコードをproduct-image.phpファイルから取り出しました。残念ながら、サムネイルはフルサイズで出力されます。これを行うための「ベストプラクティス」の方法がよくわかりませんでした。任意の助けは大歓迎です。ありがとうございました!
Get_the_post_thumbnailの2番目のパラメータは、必要な画像のサイズを取ります。あなたは現在渡しています:
apply_filters( 'single_product_large_thumbnail_size', 'shop_single' )
しかしそれを
apply_filters( 'single_product_small_thumbnail_size', 'shop_thumbnail' )
そして、あなたはより小さな画像サイズを持つでしょう。 apply_filter関数を使わずに、その場所にあるサムネイルやカスタムサイズを渡すこともできます。
shop_thumbnail
またはshop_single
を使う代わりに、array(width, height)
を試すことができます。
コードのこの行を置き換えるだけです
apply_filters( 'single_product_large_thumbnail_size', 'shop_single' )
と
apply_filters( 'single_product_large_thumbnail_size', array(300, 300) )