Отключить создание изображений нескольких размеров только для загруженных изображений Woocommerce - PullRequest
2 голосов
/ 28 апреля 2020

У меня есть тема, которая генерирует 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 загруженных изображений?

Ответы [ 2 ]

0 голосов
/ 29 апреля 2020

Насколько я знаю (не уверен, что что-то изменилось), вы не можете, размеры изображений создаются, когда вы добавляете их через New Media, но я оставляю это кому-то лучше информированному.

Вы можете попробовать некоторые обходные пути, такие как протестированный ниже и работающий, но не проверенный на конфликты:

// 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');
}

Это базовая c идея ...

0 голосов
/ 29 апреля 2020

Вы можете попробовать код ниже:

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' );
...