Удаление и изменение автоматических изображений WordPress

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

Что такое автоматические изображения в WordPress и зачем они нужны

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

Однако в ряде случаев:

  • Некоторые размеры не используются и только занимают место.
  • Дополнительные размеры могут конфликтовать с кэшированием и CDN.
  • Избыточные копии затрудняют управление файлами и резервным копированием.

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

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

Самый простой способ — отключить создание определенных размеров через код в functions.php вашей темы или в плагине. Например, чтобы убрать стандартные размеры 'medium_large' и 'large', используйте такой код:

function wptem_disable_image_sizes() {
    remove_image_size('medium_large');
    remove_image_size('large');
}
add_action('init', 'wptem_disable_image_sizes');

Однако стандартные размеры, заданные в настройках WordPress, нужно отключать иначе. Чтобы полностью убрать создание определенного размера, можно сбросить его параметры через фильтр 'intermediate_image_sizes_advanced':

function wptem_filter_image_sizes($sizes) {
    unset($sizes['medium']);
    unset($sizes['large']);
    return $sizes;
}
add_filter('intermediate_image_sizes_advanced', 'wptem_filter_image_sizes');

Этот код удалит создание средних и больших изображений при загрузке новых файлов.

Отключение размеров из настроек WordPress

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

function wptem_update_image_sizes() {
    update_option('medium_size_w', 0);
    update_option('medium_size_h', 0);
    update_option('large_size_w', 0);
    update_option('large_size_h', 0);
}
add_action('after_setup_theme', 'wptem_update_image_sizes');

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

Как удалить уже созданные автоматические изображения

Если на сайте уже есть ненужные копии изображений, их можно удалить вручную через FTP, но это рискованно и неудобно. Лучше использовать плагины:

  • Regenerate Thumbnails — позволяет регенерировать миниатюры с новыми параметрами, удаляя старые.
  • Force Regenerate Thumbnails — удаляет все старые миниатюры и создает новые по текущим настройкам.
  • Image Cleanup — помогает найти и удалить неиспользуемые изображения, в том числе автоматические копии.

Для автоматического удаления копий через код можно использовать WP-CLI команду:

wp media regenerate --skip-delete

Или написать свой скрипт, который будет искать файлы с шаблоном имен и удалять их.

Пример функции для удаления автоматических копий изображений вручную

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

function wptem_delete_image_copies($attachment_id) {
    $meta = wp_get_attachment_metadata($attachment_id);
    if (empty($meta['sizes'])) return;

    $upload_dir = wp_upload_dir();
    $base_dir = $upload_dir['basedir'];
    $file = get_attached_file($attachment_id);

    foreach ($meta['sizes'] as $size => $size_info) {
        $path = pathinfo($file);
        $copy_file = $path['dirname'] . '/' . $size_info['file'];
        if (file_exists($copy_file)) {
            unlink($copy_file); // удаляем файл
        }
    }

    // Обновляем метаданные, убираем размеры
    unset($meta['sizes']);
    wp_update_attachment_metadata($attachment_id, $meta);
}

// Пример вызова для одного изображения
// wptem_delete_image_copies(123); // 123 — ID вложения

Этот код поможет очистить лишние файлы, если они уже не нужны.

Полезные плагины для управления изображениями и их размерами

Кроме упомянутых выше, рекомендую обратить внимание на:

  • Clearfy Pro — имеет опции для отключения генерации лишних миниатюр и оптимизации загрузки.
  • My Popup — не связан напрямую с изображениями, но помогает эффективно показывать контент, уменьшая нагрузку на сайт.

Изменение размеров автоматически создаваемых изображений

Если вам нужно изменить размеры создаваемых копий, это делается в настройках медиафайлов WordPress (Настройки → Медиафайлы) или добавлением новых размеров через функцию add_image_size().

Пример добавления нового размера 600x400 с обрезкой:

function wptem_add_custom_image_size() {
    add_image_size('wptem-custom', 600, 400, true);
}
add_action('after_setup_theme', 'wptem_add_custom_image_size');

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

Для использования нового размера в теме:

the_post_thumbnail('wptem-custom');

Заключение

Управление автоматическими изображениями в WordPress — важный аспект оптимизации сайта и экономии серверных ресурсов. Отключение ненужных размеров, удаление старых копий и создание новых размеров под задачи сайта помогут улучшить производительность и удобство работы с медиа.

Если хотите более удобных инструментов, рекомендуем посмотреть Clearfy Pro для тонкой настройки WordPress, включая работу с изображениями.

Оптимизация кэша и кеширование в WordPress: лучшие практики и инструменты
08.11.2025
Как удалить закрепленные записи в WordPress: практические способы
07.02.2026
Как запретить индексацию отдельных страниц в WordPress без robots.txt
19.08.2026
Как автоматизировать удаление старого контента в WordPress
03.04.2026
Как избежать конфликтов при использовании скриншотов в WordPress
20.03.2026