Удаление изображений WooCommerce по размеру без плагинов: практическое руководство

Почему может потребоваться удаление изображений определённого размера в WooCommerce

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

Диагностика: как определить, какие размеры изображений нужно удалить

Для начала выясним, какие именно размеры создаёт WooCommerce и какие из них не используются. В файле functions.php вашей темы или в плагине вы можете вывести список зарегистрированных размеров:

global $_wp_additional_image_sizes;

foreach ( get_intermediate_image_sizes() as $size ) {
    if ( isset( $_wp_additional_image_sizes[ $size ] ) ) {
        echo $size . ': ' . print_r( $_wp_additional_image_sizes[ $size ], true ) . "\n";
    } else {
        // базовые размеры
        echo $size . ': width = ' . get_option( $size . '_size_w' ) . ', height = ' . get_option( $size . '_size_h' ) . "\n";
    }
}

Обратите внимание на размеры с префиксом woocommerce_ (например, woocommerce_thumbnail, woocommerce_single). Если вы изменяли настройки WooCommerce в Настройки > Продукты > Отображение (или в новых версиях в Customizer), некоторые размеры могли устареть.

Пошаговое решение: удаление файлов изображений по размеру без плагинов

1. Определяем размер файлов для удаления

Допустим, вы хотите удалить все миниатюры WooCommerce размером woocommerce_thumbnail.

2. Используем WP CLI для безопасного удаления

WP CLI — удобный инструмент для работы с медиафайлами. Запустите команду (в корне сайта):

wp media regenerate --yes --skip-delete --only-missing

Но эта команда не удаляет, а восстанавливает отсутствующие. Поэтому для удаления вам понадобится скрипт на PHP.

3. PHP-скрипт для удаления файлов по размеру

Создайте временный файл remove-woo-thumbnails.php в корне сайта с таким содержимым:

<?php

require 'wp-load.php';

// Размер, который хотим удалить
$size_to_delete = 'woocommerce_thumbnail';

// Получаем все ID вложений
$attachments = get_posts([
    'post_type'      => 'attachment',
    'posts_per_page' => -1,
    'post_status'    => 'inherit',
]);

foreach ($attachments as $attachment) {
    $meta = wp_get_attachment_metadata($attachment->ID);
    if (isset($meta['sizes'][$size_to_delete])) {
        $upload_dir = wp_upload_dir();
        $file_path = pathinfo(get_attached_file($attachment->ID));
        $file_name = $meta['sizes'][$size_to_delete]['file'];
        $full_path = $file_path['dirname'] . '/' . $file_name;

        if (file_exists($full_path)) {
            unlink($full_path);
            echo "Deleted: $full_path\n";
            // Удаляем размер из метаданных
            unset($meta['sizes'][$size_to_delete]);
            wp_update_attachment_metadata($attachment->ID, $meta);
        }
    }
}

echo "Удаление изображений размера '{$size_to_delete}' завершено.";

Запустите скрипт через браузер или консоль (php remove-woo-thumbnails.php). Скрипт удалит все файлы миниатюр и обновит метаданные вложений.

Проверка результата после удаления

  • В папке wp-content/uploads убедитесь, что файлы с размером woocommerce_thumbnail отсутствуют.
  • В админке WordPress откройте любое изображение товара — миниатюры должны показываться корректно, без ошибок.
  • Если используете кэширование, очистите кэш, чтобы увидеть результат.

Частые ошибки и как их исправить

  • Ошибка: изображения не удаляются
    Проверьте права на запись в папке uploads. Скрипт должен иметь доступ к файлам.
  • Ошибка: миниатюры пропали из админки
    Возможно, удалён нужный размер, а в шаблоне он вызывается. Подключите резервный размер или пересоздайте миниатюры командой wp media regenerate.
  • Ошибка: скрипт не запускается
    Убедитесь, что подключен wp-load.php и что запускаете скрипт в корне сайта.

Практические советы по производительности и безопасности

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

Сравнение вариантов удаления изображений WooCommerce

МетодПлюсыМинусы
Плагины очистки (например, Regenerate Thumbnails)Простота, безопасность, удобный интерфейсЗависимость от сторонних инструментов, нагрузка во время работы
WP CLIБыстро, без нагрузки на фронтенд, подходит для больших сайтовТребует доступа к серверу и знаний командной строки
Собственный PHP-скрипт (описанный выше)Гибкость, контроль над процессомРиск ошибки при неправильном использовании, требует навыков разработки
Как использовать настройки WPCommunity для управления ролями пользователей в WordPress
11.04.2026
Изменение файла robots.txt в WordPress без плагинов
07.01.2026
Как добавить отображение последних изменений в административной панели WordPress
07.02.2026
Автоматическое обновление остатков и цен в WooCommerce через CSV
18.05.2026
Как добавить автоматическое удаление спама в комментариях WordPress
10.01.2026