Flector

Как отключить генерацию дополнительных картинок?

Как отключить генерацию дополнительных миниатюр?

В WordPress 4.4 разработчики добавили поддержку адаптивных изображений. На практике это означает, что картинки на сайте стали выводиться с атрибутом srcset, в котором перечислены все дополнительные размеры картинок. Для этого атрибута WordPress использует все стандартные размеры картинок, генерируемые движком, плюс создает еще отдельный размер с шириной в 768 пикселей. Даже если вы отключите генерацию различных размеров картинок, то движок все равно будет генерировать эту дополнительную картинку в обязательном порядке. Но такое поведение движка можно исправить, для этого вам необходимо добавить в файл functions.php вашей темы следующий код:

//отключение генерации доп. размеров картинок start
function wph_remove_768_image($sizes){
    unset($sizes['medium_large']);
    return $sizes;
}
add_filter('intermediate_image_sizes_advanced', 'wph_remove_768_image');
//отключение генерации доп. размеров картинок end

Этот код отключит генерацию картинки с шириной в 768 пикселей (этот размер в движке называется 'medium_large'). Если вы хотите не только отключить генерацию дополнительных картинок, но и отключить функцию добавления атрибута srcset, то вы должны использовать следующий код:

//отключение добавления атрибута srcset start
remove_filter('the_content', 'wp_make_content_images_responsive');
add_filter( 'wp_calculate_image_sizes', '__return_false',  PHP_INT_MAX );
add_filter( 'wp_calculate_image_srcset', '__return_false', PHP_INT_MAX );
//отключение добавления атрибута srcset end

Напомню, что отключить генерацию дополнительных размеров картинок можно в "Настройках\Медиафайлах" (достаточно установить нулевые размеры у всех картинок). Или с помощью такого кода в файле functions.php:

//отключение генерации всех стандартных размеров картинок start
function wph_remove_all_images($sizes){
    unset($sizes['thumbnail']);
    unset($sizes['medium']);
    unset($sizes['medium_large']);
    unset($sizes['large']);
    unset($sizes['1536x1536']); // from 5.3
    unset($sizes['2048x2048']); // from 5.3
    return $sizes;
}
add_filter('intermediate_image_sizes_advanced', 'wph_remove_all_images');
//отключение генерации всех стандартных размеров картинок end

Помните, что некоторые размеры генерируемых картинок создаются темами или плагинами и их генерацию надо отключать именно в них.


Написать комментарий

Для вставки кода воспользуйтесь кнопкой "Код". Используйте предпросмотр!