Убираем генерацию копий загружаемых изображений в WordPress
По умолчанию, WordPress генерирует 3 размера для каждой оригинальной картинки, которую мы загружаем. Темы и плагины могут создавать дополнительные размеры изображений.
Таким образом, ваш сайт может создавать от 5 до 10 копий каждого загружаемого изображения. Это может увеличить необходимое пространство на диске и размер бэкап файлов. И все бы ничего, если все эти копии были бы нужны и использовались в теме, однако так происходит редко.
Когда нужно убирать генерацию копий изображений?
Во всех случаях, когда вам не нужны размеры создаваемых копий. Если вы пользуетесь не дорогим хостингом и дисковое пространство на нем ограничено. То стоит проверить, не создаются ли копии, которые не используются в теме. Также, многочисленные копии загружаемых изображений, которые помещаются в папку uploads, могут значительно увеличить размер бэкап файлов — это как минимум не удобно. Представьте сами, вы загрузили одну картинку, а WordPress создал еще 7 копий этой картинки, при этом некоторые из копий могут быть почти такого же размера как и оригинал. Если у вас на сайте тысячи картинок, то однажды это может стать проблемой.
Заметка: для отображения картинок в загрузчике медиафайлов при добавлении картинки к посту, используются средние размеры (medium). Поэтому я рекомендую их оставлять, можно просто размер сделать поменьше.
Как узнать какие размеры используются на сайте?
По умолчанию WordPress создает четыре копии:
- миниатюру (thumbnail)
- средний размер (medium)
- умеренный большой (medium_large) с версии 4.4.
- большой размер (large)
Кроме этих размеров, дополнительные размеры может создавать сама тема. Например, доп. размер для установки миниатюры поста, для постов в боковой панели или для других целей.
Прежде всего, вам нужно определить сколько копий создается при загрузке изображения. Для этого зайдите в админ панель и загрузите изображение большого размера, пусть это будет картинка 1900х1000 пикселей (большой размер нужен для того, чтобы были созданы все возможные копии). Затем зайдите в папку загрузок изображений, обычно это: /wp-content/uploads/. Там файлы сортируются по годам и месяцам, зайдите в последний год и месяц, там вы должны увидеть файл, который только что загрузили и все его копии:
Копии оригинала загружаемых картинок
Как видите на картинке, мой тестовый блог (тема Twenty Fifteen) создал 5 копий. Где 4 это копии по умолчанию, а 1 остальная — это настройки темы.
Узнаем названия каждого размера
Пример с заливкой изображения, показывает сколько из создается, но не показывает как называется каждый размер. Название (ID) размера нужно знать, чтобы его отключить.
Чтобы узнать какие размеры зарегистрированы на сайте, добавьте следующий код в темы header.php или
footer.php. Так вы увидите какие на сайте существуют размеры и как они называются.
/** * Получает информацию обо всех зарегистрированных размерах картинок. * * @global $_wp_additional_image_sizes * @uses get_intermediate_image_sizes() * * @param boolean [$unset_disabled = true] Удалить из списка размеры с 0 высотой и шириной? * @return array Данные всех размеров. */
function get_image_sizes( $unset_disabled = true ) { $wais = & $GLOBALS['_wp_additional_image_sizes']; $sizes = array(); foreach ( get_intermediate_image_sizes() as $_size ) { if ( in_array( $_size, array('thumbnail', 'medium', 'medium_large', 'large') ) ) { $sizes[ $_size ] = array( 'width' => get_option( "{$_size}_size_w" ), 'height' => get_option( "{$_size}_size_h" ), 'crop' => (bool) get_option( "{$_size}_crop" ), ); } elseif ( isset( $wais[$_size] ) ) { $sizes[ $_size ] = array( 'width' => $wais[ $_size ]['width'], 'height' => $wais[ $_size ]['height'], 'crop' => $wais[ $_size ]['crop'], ); } // size registered, but has 0 width and height if( $unset_disabled && ($sizes[ $_size ]['width'] == 0) && ($sizes[ $_size ]['height'] == 0) ) unset( $sizes[ $_size ] ); } return $sizes;
} die( print_r( get_image_sizes() ) );
Теперь зайдите на сайт и вы увидите такой массив:
Array
( [thumbnail] => Array ( [width] => 150 [height] => 150 [crop] => 1 ) [medium] => Array ( [width] => 300 [height] => 300 [crop] => ) [medium_large] => Array ( [width] => 768 [height] => 0 [crop] => ) [large] => Array ( [width] => 1024 [height] => 1024 [crop] => ) [post-thumbnail] => Array ( [width] => 825 [height] => 510 [crop] => 1 )
)
Как отключить создание копий?
Чтобы отключить генерацию копий по умолчанию, зайдите в Настройки > Медиафайлы и поставьте ноль только для крупного размера.