Как отключить автоматически генерируемые размеры изображений в WordPress

По умолчанию WordPress создает множество копий изображений, загруженных через библиотеку медиафайлов. И все они могут занимать много дискового пространства. В этом руководстве мы расскажем, как решить данную проблему.

Сначала пример

В качестве пример рассмотрим мой личный сайт, посвященный изображениям. Через медиа библиотеку на нем загружено более 800 изображений. Поэтому если бы я не помешал WordPress, он автоматически генерировал бы несколько копий каждого изображения.

Выполняем расчеты

На моем WordPress-сайте 800 оригинальных изображений. Размер каждого из них – около 2 Мб. Получается, что все они занимают около 1,6 Гб дискового пространства.

Начиная с версии 5.3, WordPress автоматически создает следующие размерные версии каждого изображения, загружаемого с помощью медиа библиотеки и визуального редактора:

Размер изображенияГабаритные размеры
МиниатюраРазмер основан на настройках мультимедиа.
СреднийРазмер основан на настройках мультимедиа.
БольшойРазмер основан на настройках мультимедиа.
Средний большой768px.
2x средний большой1536px.
2x большой2048px.
Масштабируемый2560px.

Теперь подсчитаем, сколько будут весить все версии 800 изображений моего сайта:

Размер изображенияГабаритные размерыРазмер файлаОбщее количество
МиниатюраРазмер основан на настройках мультимедиа.10KB8MB
СреднийРазмер основан на настройках мультимедиа.20KB16MB
БольшойРазмер основан на настройках мультимедиа.100KB80MB
Средний большой768px50KB40Мб
2x средний большой1536px200KB160MB
2x большой2048px400KB320MB
Масштабируемый2560px500KB400MB

Сложение чисел из правого столбца дает размер в 1,024 ГБ! При этом ядро ​​WordPress вместе с кучей плагинов и тем оформления будет весить всего несколько сотен мегабайт.

Поэтому если автоматически сгенерированные WordPress изображения не контролировать, объем необходимого для сайта дискового пространства может увеличиться в разы.

Но подождите, это еще не все

Пока что у нас генерируются семь версий каждого загруженного изображения. Но темы оформления также могут создавать дополнительные версии изображений:

  • set_post_thumbnail_size()- пользовательский размер для избранных изображений.
  • add_image_size()- дополнительные изображения любого указанного размера.

Например, тема оформления WordPress «Twenty Fifteen» добавляет еще одно автоматически сгенерированное изображение с помощью этой строки кода:

set_post_thumbnail_size( 825, 510, true);
Но подождите, это еще не все

В дополнение к 7 изображениям, сгенерированным WordPress, тема оформления может добавлять и свои.

Подводя итог: WordPress генерирует как минимум 7 дополнительных размеров для каждого загруженного изображения.

Решение: отключить ненужные размерности изображений

Чтобы сэкономить серверное пространство сайта, следует отключить следующие версии изображений, генерируемые WordPress:

  • Thumbnail.
  • Medium.
  • Large.
  • Medium Large.
  • 2x Medium Large.
  • 2x Large.
  • Scaled.

Внимание: не отключайте генерацию версий изображений, необходимые для используемой темы оформления.

Отключить размер миниатюры

Чтобы отключить автоматическое создание уменьшенных версий изображений, перейдите в раздел «Настройки»> «Медиафайлы» панели администрирования WordPress. Затем для параметра «Размер миниатюры» установите значение 0.

Отключить размер миниатюры

Введите 0, чтобы отключить автоматическую генерацию любой из размерностей.

Также это можно сделать, добавив приведенный ниже фрагмент кода в файл functions.php используемой темы оформления:

function shapeSpace_disable_thumbnail_images($sizes) {

	unset($sizes['thumbnail']); // отключить миниатюры
	return $sizes;

}
add_action('intermediate_image_sizes_advanced', 'shapeSpace_disable_thumbnail_images');

Отключение среднего размера

Чтобы отключить создание изображений среднего размера, в панели администрирования WordPress установите для параметра «Средний размер» значение «0». Или добавьте приведенный ниже код в файл functions.php используемой темы оформления:

function shapeSpace_disable_medium_images($sizes) {
	
	unset($sizes['medium']); // отключить средний размер
	return $sizes;

}
add_action('intermediate_image_sizes_advanced', 'shapeSpace_disable_medium_images');

Отключение большого размера

Чтобы отключить автоматическое создание изображений большого размера, установите для параметра «Большой размер» значение «0». Или добавьте приведенный ниже код в файл functions.php используемой темы оформления:

function shapeSpace_disable_large_images($sizes) {
	
	unset($sizes['large']); // отключить большой размер
	return $sizes;
	
}
add_action('intermediate_image_sizes_advanced', 'shapeSpace_disable_large_images');

Отключение среднего большого размера

Чтобы отключить изображения среднего большого размера, добавьте приведенный ниже фрагмент кода в файл functions.php используемой темы оформления WordPress:

function shapeSpace_disable_medium_large_images($sizes) {
	
	unset($sizes['medium_large']); // отключить размер 768px
	return $sizes;
	
}
add_filter('intermediate_image_sizes_advanced', 'shapeSpace_disable_medium_large_images');

Отключить 2x среднего большого размера

function shapeSpace_disable_2x_medium_large_images($sizes) {
	
	unset($sizes['1536x1536']); // отключить размер 2x средний большой
	return $sizes;
	
}
add_filter('intermediate_image_sizes_advanced', 'shapeSpace_disable_2x_medium_large_images');

Отключить 2x большой размер

function shapeSpace_disable_2x_large_images($sizes) {
	
	unset($sizes['2048x2048']); // отключить размер 2x большой
	return $sizes;
	
}
add_filter('intermediate_image_sizes_advanced', 'shapeSpace_disable_2x_large_images');
add_filter('big_image_size_threshold', '__return_false');

Отключить другие размеры

Для любых других размеров изображений, созданных с помощью set_post_thumbnail_size() и add_image_size(), можно использовать remove_image_size(). Вот пример:

function shapeSpace_disable_other_images() {
	
	remove_image_size('post-thumbnail'); // отключить set_post_thumbnail_size() 
	remove_image_size('another-size');   // отключить другие дополнительные размеры изображений
	
}
add_action('init', 'shapeSpace_disable_other_images');

Для удаления пользовательских размеров изображений нужно знать их названия. Например, миниатюра записи – это всегда post-thumbnail. Но префикс может меняться в зависимости от используемой темы оформления или плагина.

Отключить их всех!

Ниже приведен код, который объединяет и оптимизирует все перечисленные выше методы.

// отключение генерируемых размеров изображений
function shapeSpace_disable_image_sizes($sizes) {
	
	unset($sizes['thumbnail']);    // отключение миниатюр
	unset($sizes['medium']);       // отключение среднего размера
	unset($sizes['large']);        // отключение большого размера
	unset($sizes['medium_large']); // отключение среднего большого размера
	unset($sizes['1536x1536']);    // отключение 2x среднего большого размера 
	unset($sizes['2048x2048']);    // отключение 2x большого размера	
	return $sizes;
	
}
add_action('intermediate_image_sizes_advanced', 'shapeSpace_disable_image_sizes');

// отключение масштабируемого размера изображений
add_filter('big_image_size_threshold', '__return_false');

// отключение других размеров изображений
function shapeSpace_disable_other_image_sizes() {
	
	remove_image_size('post-thumbnail'); // отключение изображений, добавляемых через set_post_thumbnail_size() 
	remove_image_size('another-size');   // отключение других добавляемых размеров изображений
	
}
add_action('init', 'shapeSpace_disable_other_image_sizes');

Приведенный выше фрагмент кода объединяет в себе методы, необходимые для отключения всех изображений, автоматически сгенерированных WordPress.

Совет для профессионалов: Для отключения адаптивных изображений, которые генерирует WordPress, используйте бесплатный плагин Disable Responsive Images Complete.

Заключение

Контроль над размерами изображений, которые генерирует WordPress, поможет вам сэкономить дисковое пространство и оптимизировать производительность сайта.

Вадим Дворниковавтор-переводчик статьи «How to Disable WordPress Automatically Generated Images – Complete Guide»

Пожалуйста, оставляйте свои отзывы по текущей теме статьи. Мы крайне благодарны вам за ваши комментарии, лайки, дизлайки, подписки, отклики!