WooCommerce 3.3X版本产品图片裁剪问题:如何显示原图尺寸
解决WooCommerce 3.3.x显示产品原图的问题
嘿,我来帮你搞定这个问题!你用的是WooCommerce 3.3.x版本,主题里设置的图片尺寸都是带强制裁剪的(那些add_image_size最后面的true参数就是开启裁剪的关键),所以现在站点各处的产品图都是裁剪后的版本。要实现显示原图尺寸的效果,你可以试试下面两种方案:
方案一:修改主题的图片尺寸设置
直接找到主题里你提到的那段代码,把每个add_image_size的最后一个参数从true改成false——这个参数控制是否裁剪图片,改成false后就只会按设定的尺寸缩放(不会裁剪),如果留空宽高的话就会显示原图:
$shop_single_image_size_default = array(555, 710); # Other Image Sizes add_image_size('shop-thumb-2', 70, 90, false); // 关闭裁剪,仅缩放 add_image_size('shop-category-thumb', 320, 256, false); // 同样关闭裁剪
如果想要完全显示原图,也可以把宽高参数留空:
add_image_size('shop-thumb-2', '', '', false); // 完全显示原图尺寸 add_image_size('shop-category-thumb', '', '', false);
⚠️ 注意:修改完代码后,你需要重新生成所有产品图片的缩略图,否则之前已经裁剪过的图片不会自动变回原图。可以用WordPress的「Regenerate Thumbnails」插件来批量处理。
方案二:用钩子覆盖WooCommerce的图片设置(推荐,避免主题更新覆盖)
如果你担心主题更新会把修改的代码覆盖掉,更稳妥的方式是在子主题的functions.php里添加钩子,直接覆盖WooCommerce的图片尺寸规则:
// 覆盖产品单页图片为原图 add_filter('woocommerce_get_image_size_shop_single', function($size) { return array( 'width' => '', // 留空表示不限制宽度 'height' => '', // 留空表示不限制高度 'crop' => false // 关闭裁剪 ); }); // 覆盖产品分类页图片为原图 add_filter('woocommerce_get_image_size_shop_catalog', function($size) { return array( 'width' => '', 'height' => '', 'crop' => false ); }); // 覆盖产品缩略图为原图 add_filter('woocommerce_get_image_size_shop_thumbnail', function($size) { return array( 'width' => '', 'height' => '', 'crop' => false ); });
这段代码会强制WooCommerce在所有场景下都使用原图尺寸输出,完全忽略主题设置的裁剪规则。同样,修改后记得重新生成缩略图哦。
内容的提问来源于stack exchange,提问作者Tracy
相关产品推荐
相关产品推荐

