web-dev-qa-db-ja.com

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="Placeholder" />

<?php endif; ?>

<?php do_action('woocommerce_product_thumbnails'); ?>

そのコードをproduct-image.phpファイルから取り出しました。残念ながら、サムネイルはフルサイズで出力されます。これを行うための「ベストプラクティス」の方法がよくわかりませんでした。任意の助けは大歓迎です。ありがとうございました!

2
Clinton Warren

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関数を使わずに、その場所にあるサムネイルやカスタムサイズを渡すこともできます。

1
Clinton Warren

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) )
2
Habib-ur-Rahman