wordpress 仅为Woocommerce上传的图像禁用多尺寸图像生成

vwhgwdsa  于 2023-04-05  发布在  WordPress
关注(0)|答案(3)|浏览(184)

我有一个主题,生成11个不同大小的图像,每个图像上传。

set_post_thumbnail_size( 220, 150, true);
add_image_size( 'redmag-blog-list', 491, 280, true);
add_image_size( 'redmag-blog-list-large', 614, 320, true);
add_image_size( 'redmag-sidebar', 100 ,100, true);
add_image_size( 'redmag-blog-grid', 496, 290, true);
add_image_size( 'redmag-blog-tran', 480 ,250, true);
add_image_size( 'redmag-blog-tran-vertical', 328 ,480, true);
add_image_size( 'redmag-blog-video',480,150,true);
add_image_size( 'redmag-mini-list', 150 ,100, true);
add_image_size( 'redmag-blog-tran-large', 770 ,420, true);
add_image_size( 'redmag-blog-vertical', 510 ,680, true);
add_image_size( 'redmag-related-image',370,247,true);

这是好的主题,但它也调整每一个图像上传到Woocommerce这是不需要的,并占用了大量的空间。
作为临时措施,我在向woocommerce添加图像时注解掉了上面的代码,这样它就不会生成这些图像。
我可以只为Woocommerce上传的图像禁用图像生成吗?

14ifxucb

14ifxucb1#

您可以尝试以下代码:

function remove_default_image_sizes( $sizes ) {

  /* Default WordPress */
  unset( $sizes[ 'thumbnail' ]);       // Remove Thumbnail (150 x 150 hard cropped)
  unset( $sizes[ 'medium' ]);          // Remove Medium resolution (300 x 300 max height 300px)
  unset( $sizes[ 'medium_large' ]);    // Remove Medium Large (added in WP 4.4) resolution (768 x 0 infinite height)
  unset( $sizes[ 'large' ]);           // Remove Large resolution (1024 x 1024 max height 1024px)

  /* With WooCommerce */
  unset( $sizes[ 'shop_thumbnail' ]);  // Remove Shop thumbnail (180 x 180 hard cropped)
  unset( $sizes[ 'shop_catalog' ]);    // Remove Shop catalog (300 x 300 hard cropped)
  unset( $sizes[ 'shop_single' ]);     // Shop single (600 x 600 hard cropped)

  return $sizes;
}

add_filter( 'intermediate_image_sizes_advanced', 'remove_default_image_sizes' );
weylhg0b

weylhg0b2#

据我所知(不确定是否有任何变化),你不能,图像大小创建时,你通过新媒体添加它们,但我离开的人更好地了解。

您可以尝试一些变通方法,如下面的一个测试和工作,但没有检查冲突:

// theme image size
add_image_size( '1280', 1280, 9999 );

function mlnc_remove_add_image_sizes() {
    // remove theme image size
    remove_image_size( '1280' );
    // add product image size
    add_image_size('1165', 1165, true );
}
if ( get_post_type( $_REQUEST['post_id'] ) === 'product' ) { 
  add_action('init', 'mlnc_remove_add_image_sizes');
}

这是基本的想法。。

6l7fqoea

6l7fqoea3#

试试这个:

add_action( 'init', 'custom_remove_image_sizes' );
function custom_remove_image_sizes() {
    remove_image_size( '1536x1536' );
    remove_image_size( '2048x2048' );
    remove_image_size( 'medium_large' );
    remove_image_size( 'woocommerce_gallery_thumbnail' );
    remove_image_size( 'woocommerce_single' );
    remove_image_size( 'woocommerce_thumbnail' );
}

相关问题