1

現在、私の注目の画像は製品ループで使用されています(デフォルト)。

問題は、すべての商品画像が固定サイズにサイズ変更されているため(レイアウトを改善するため)、小さい商品の画像が実際には大きい商品の画像よりも小さくなっていることです。

誰かがより良い提案をしない限り、これを修正する1つの方法は、製品ループで別の製品イメージを使用することです。このようにして、小さい商品の画像の上に空白を追加して、サイズが変更されたときに他の商品が小さくならないようにすることができます。(注-この空白をライトボックスに表示したくないので、この編集済み画像を注目画像として設定することはできません。)

それで、最初に、それは私の問題を解決するための最良の方法ですか?もしそうなら、製品ループで使用するカスタム画像を指定するための最良の方法は何ですか?

前もって感謝します。

4

1 に答える 1

2

これを解決するために私が思いついた関数は次のとおりです。これは、functions.phpファイルに配置する必要があります。使用法については関数のコメントを参照してください...

/**
 * This function is used to display a custom image in the shop page if a custom
 * image exists for the product. This may be required, for example, to prevent
 * images of small products dwarfing images of larger products on the shop page.
 * 
 * To set a custom image for a product, create a custom field for it (in the
 * Edit Product page) called custom_product_thumbnail_url . (The image that you
 * specify can contain additional white space to prevent it being enlarged.)
 * 
 * This function overrides the function of the same name in WooCommerce's
 * woocommerce-template.php file.
 *
 * @access public
 * @subpackage  Loop
 * @param string $size (default: 'shop_catalog')
 * @param int $placeholder_width (default: 0)
 * @param int $placeholder_height (default: 0)
 * @return string
 */
function woocommerce_get_product_thumbnail( $size = 'shop_catalog', $placeholder_width = 0, $placeholder_height = 0  ) {

    global $post, $woocommerce;

    if ( ! $placeholder_width )
            $placeholder_width = $woocommerce->get_image_size( 'shop_catalog_image_width' );
    if ( ! $placeholder_height )
            $placeholder_height = $woocommerce->get_image_size( 'shop_catalog_image_height' );

    $imgSrc = get_post_meta($post->ID, 'custom_product_thumbnail_url', true);
    if ($imgSrc)
            return '<img src="'. $imgSrc .'" alt="' . get_the_title($post->ID) . '" width="' . $placeholder_width . '" height="' . $placeholder_height . '" />';
    if ( has_post_thumbnail() )
            return get_the_post_thumbnail( $post->ID, $size );
    elseif ( woocommerce_placeholder_img_src() )
            return '<img src="'. woocommerce_placeholder_img_src() .'" alt="Placeholder" width="' . $placeholder_width . '" height="' . $placeholder_height . '" />';

}
于 2013-03-20T13:57:47.213 に答える