В последних версиях WordPress по умолчанию при загрузке изображений создаются несколько копий разных размеров, включая крупные (large), очень крупные (1536×1536) и гигантские (2048×2048). Это удобно для адаптивного дизайна, но иногда приводит к излишнему расходу места на сервере и замедлению загрузки сайта. Если вы хотите отключить создание больших изображений в WordPress, чтобы оптимизировать хранение и производительность, в этой статье подробно расскажу, как это сделать.
Почему в WordPress создаются крупные изображения
По умолчанию WordPress генерирует несколько размеров изображений, чтобы адаптировать их под разные устройства и разрешения экрана. Размеры large, 1536×1536 и 2048×2048 появились в WordPress начиная с версии 5.3 для поддержки Retina-дисплеев и улучшения качества изображений на больших экранах.
Однако не всегда эти размеры нужны, особенно если тема или плагин не используют их. Избыточные копии создают нагрузку на дисковое пространство и могут ухудшать время обработки загрузок.
Поэтому в ряде проектов целесообразно отключить генерацию крупных изображений.
Как отключить генерацию крупных изображений через functions.php
Самый простой способ — добавить в файл functions.php вашей темы следующий код, который отключает создание размеров 1536×1536 и 2048×2048:
function wplock_disable_large_images( $sizes ) {
unset( $sizes['1536x1536'] );
unset( $sizes['2048x2048'] );
return $sizes;
}
add_filter( 'intermediate_image_sizes_advanced', 'wplock_disable_large_images' );Этот фильтр отменяет создание очень больших копий изображений. Но размер large не отключается этим кодом, его нужно убрать отдельно:
function wplock_disable_large_size( $sizes ) {
unset( $sizes['large'] );
return $sizes;
}
add_filter( 'intermediate_image_sizes_advanced', 'wplock_disable_large_size' );Чтобы отключить все сразу, объедините функции:
function wplock_disable_all_large_images( $sizes ) {
unset( $sizes['large'] );
unset( $sizes['1536x1536'] );
unset( $sizes['2048x2048'] );
return $sizes;
}
add_filter( 'intermediate_image_sizes_advanced', 'wplock_disable_all_large_images' );Как отключить создание размеров через настройки медиафайлов
В админке WordPress перейдите в Настройки > Медиафайлы. Там можно задать нулевые значения для ширины и высоты больших изображений:
- Максимальная ширина для больших изображений – поставьте
0 - Максимальная высота для больших изображений –
0
Это отключит генерацию размера large, но не уберет 1536×1536 и 2048×2048, так как они добавлены программно.
Удаление уже созданных крупных изображений
После отключения генерации крупных изображений старые файлы останутся на сервере и их стоит очистить. Для этого можно использовать плагин Media Cleaner или вручную удалить файлы из папок /uploads/.
Также можно написать свой скрипт для удаления файлов с суффиксами -1536x1536 и -2048x2048 в названиях.
Пример функции для удаления крупных изображений из библиотеки
function wplock_remove_large_images_from_library( $post_id ) {
$meta = wp_get_attachment_metadata( $post_id );
if ( empty( $meta['sizes'] ) ) {
return;
}
$sizes_to_remove = ['large', '1536x1536', '2048x2048'];
foreach ( $sizes_to_remove as $size ) {
if ( isset( $meta['sizes'][ $size ] ) ) {
$file = path_join( dirname( get_attached_file( $post_id ) ), $meta['sizes'][ $size ]['file'] );
if ( file_exists( $file ) ) {
unlink( $file );
}
unset( $meta['sizes'][ $size ] );
}
}
wp_update_attachment_metadata( $post_id, $meta );
}
add_action( 'add_attachment', 'wplock_remove_large_images_from_library' );Этот код удалит указанные размеры сразу после загрузки нового файла, экономя место.
Использование плагинов для управления размерами изображений
Если не хочется копаться в коде, можно использовать плагины, которые позволяют гибко настроить генерацию размеров. Вот несколько полезных:
- Disable Big Image Size — плагин, который отключает генерацию 1536×1536 и 2048×2048.
- Regenerate Thumbnails — после отключения размеров с его помощью можно пересоздать миниатюры без больших размеров.
- Imsanity — автоматически масштабирует загружаемые изображения до оптимальных размеров, предотвращая создание слишком больших файлов.
Для удобства можно установить плагин Clearfy, который содержит множество оптимизаций, включая управление размерами изображений и отключение лишних генераций.
Выводы и рекомендации по отключению крупных изображений
Отключение крупных изображений в WordPress помогает:
- Экономить место на хостинге
- Ускорить загрузку сайта и бэкапы
- Избежать лишних файлов в библиотеке медиа
Однако учитывайте, что если ваша тема или плагины используют эти размеры, то после отключения изображения могут отображаться некорректно. Всегда тестируйте сайт после внесения изменений.
Если хотите комплексное решение с удобным управлением, рекомендую попробовать Clearfy. Этот плагин поможет не только с изображениями, но и с другими оптимизациями WordPress.