2017-11-28 13 views
0

私はストックフォトサイトを開発しているので、私は訪問者にイメージの大きなプレビューを見せたいと思います。イメージの盗難を避けるために、フルサイズ以外のイメージに透かしを入れました。大きなプレビューを提供するために、カスタムのサムネイルサイズを作成し、それに応じてコードを変更しました。スレッドhereを参照してください。Woocommerceで条件付きイメージのサムネイルサイズを表示する方法

イメージが3072ピクセル(幅または高さ)として小さいサイズでアップロードされることがあることがあります。私が望むのは、デフォルトのWordpressイメージサイズの1つである 'large'というサムネイルへのフォールバックがあるということです。 今のところフルサイズの画像に戻っています。フルサイズの画像が3072ピクセルより小さい場合は、サイズが3072ピクセルのサムネイルは生成されません。

私はこれを以下のコードで完成させようとしましたが、それは正しくできません。 どうしたの?

$filemeta = wp_get_attachment_metadata($post_thumbnail_id, FALSE); 

$image_width  = $filemeta['width']; 
$image_height  = $filemeta['height']; 


if ($image_width < 3072 || $image_height < 3072){ 
$thumbnail_size = apply_filters('woocommerce_product_thumbnails_large_size', 'large'); 
} else { 
$thumbnail_size = apply_filters('woocommerce_product_thumbnails_large_size', 'preview'); 
} 

答えて

0

が見つかりました。

add_image_size('preview', $width = 3072, $height =3072, $crop = false); 

$post_thumbnail_id = get_post_thumbnail_id($post->ID); 
$filemeta = wp_get_attachment_metadata($post_thumbnail_id, FALSE); 

if ($filemeta['width']>3071 || $filemeta['height']>3071){ 
    $thumbnail_size = apply_filters('woocommerce_product_thumbnails_large_size', 'preview'); 
}else{ 
    $thumbnail_size = apply_filters('woocommerce_product_thumbnails_large_size', 'large'); 
} 

product_image.phpにこの行を変更し

$thumbnail_size = apply_filters('woocommerce_product_thumbnails_large_size', 'preview'); 

たぶんそこよりスマートな方法があるが、これは私のために動作します。

関連する問題