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

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

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

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

  • Занятию лишнего места на сервере;
  • Усложнению управления библиотекой медиа;
  • Потенциальному снижению производительности бэкапов;
  • Росту времени загрузки сайта, если изображения случайно подключены или дублируются.

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

Как определить старые изображения в WordPress

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

Основные параметры для поиска:

  • Дата загрузки — например, изображения старше 1 года.
  • Использование — изображения, которые не вставлены ни в один пост или страницу.

Определение по дате загрузки

Дата загрузки хранится в поле post_date таблицы wp_posts для типа записи attachment. Мы можем написать SQL-запрос, чтобы выбрать все изображения, загруженные до определённой даты.

Определение использования изображения

Использование можно проверить поиском по содержимому постов и страниц, где встречается URL изображения. Если изображение нигде не используется, его можно считать кандидатом на удаление.

Практическое решение: поиск и удаление старых неиспользуемых изображений

Разработаем функцию wpcource_delete_old_unused_images(), которая найдет и удалит изображения старше года и не используемые в контенте.

function wpcource_delete_old_unused_images() {
    global $wpdb;
    // Дата год назад
    $date_limit = date('Y-m-d H:i:s', strtotime('-1 year'));
    // Получаем все вложения (изображения) старше года
    $attachments = $wpdb->get_results($wpdb->prepare(
        "SELECT ID, guid FROM {$wpdb->posts} WHERE post_type = 'attachment' AND post_mime_type LIKE 'image/%' AND post_date < %s",
        $date_limit
    ));

    $deleted_count = 0;

    foreach ($attachments as $attachment) {
        // Проверяем, используется ли изображение в контенте
        $image_url = esc_sql($attachment->guid);
        $usage_count = $wpdb->get_var($wpdb->prepare(
            "SELECT COUNT(*) FROM {$wpdb->posts} WHERE post_content LIKE %s",
            '%' . $wpdb->esc_like($image_url) . '%'
        ));

        if ($usage_count == 0) {
            // Удаляем изображение без перемещения в корзину
            wp_delete_attachment($attachment->ID, true);
            $deleted_count++;
        }
    }

    return "Удалено изображений: " . $deleted_count;
}

Эту функцию можно запустить из административной части сайта, например, подключив к кастомному админ-экшену или временно в functions.php.

Полезные рекомендации при удалении изображений

Резервное копирование

Перед массовым удалением файлов обязательно сделайте резервную копию сайта и базы данных. Это позволит восстановить данные в случае ошибки.

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

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

Пошаговое удаление

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

Альтернативные способы и плагины для управления медиа

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

  • Media Cleaner — помогает находить и удалять неиспользуемые медиафайлы.
  • Clearfy Pro — оптимизационный плагин с функциями очистки и управления.

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

Заключение по техническому решению удаления старых изображений

Удаление старых неиспользуемых изображений — важная задача для поддержания производительности и порядка на WordPress-сайте. Используя приведенный в статье код, вы сможете самостоятельно проводить чистку библиотеки медиа без сторонних инструментов. Главное — тщательно проверять каждое действие и делать резервные копии.

WooCommerce: автоматическое удаление отменённых заказов с помощью хуков
15.05.2026
Как удалить кэш и очистить базу данных WordPress для ускорения сайта
15.11.2025
Как создать многоуровневую навигацию в WordPress с помощью кода
23.01.2026
WooCommerce: автоматическое удаление отменённых заказов и товаров из них
01.05.2026
WooCommerce: как автоматически удалять товары из заказов после их отмены
19.04.2026

Обучение разработке на WordPress, как создавать темы, плагины. Подробнее об обучении.