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

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

Почему важно удалять старые медиа файлы в WordPress

Удаление неиспользуемых медиа файлов помогает:

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

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

Плагины для автоматического удаления неиспользуемых медиа файлов

Среди популярных и проверенных решений стоит выделить несколько плагинов:

1. Media Cleaner

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

Преимущества Media Cleaner:

  • Поддержка различных типов контента (посты, страницы, пользовательские типы).
  • Работа с плагинами-строителями, такими как Elementor.
  • Отложенная очистка — сначала файлы перемещаются в карантин.

Минусы — в бесплатной версии некоторые функции ограничены.

Скачать и узнать подробности можно на официальной странице плагина.

2. WP-Optimize (модуль медиа)

WP-Optimize — комплексный плагин для оптимизации базы данных и кеширования, который в последних релизах добавил функцию удаления неиспользуемых медиа файлов.

Преимущества:

  • Объединяет оптимизацию базы данных и очистку медиа.
  • Простой интерфейс и надежность.

Этот плагин подходит, если вы хотите комплексно поддерживать сайт в хорошем состоянии.

Как написать кастомный скрипт для автоматического удаления неиспользуемых медиа файлов

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

Пример простого скрипта:

function wptask_remove_unused_attachments() {
    global $wpdb;

    // Получаем все ID вложений
    $attachment_ids = $wpdb->get_col("SELECT ID FROM {$wpdb->posts} WHERE post_type = 'attachment'");

    foreach ($attachment_ids as $id) {
        // Проверяем связи с постами
        $parent_id = get_post_field('post_parent', $id);
        if (!$parent_id) {
            // Проверяем использование в контенте
            $url = wp_get_attachment_url($id);
            $count = $wpdb->get_var($wpdb->prepare(
                "SELECT COUNT(*) FROM {$wpdb->posts} WHERE post_content LIKE %s",
                '%' . $wpdb->esc_like($url) . '%'
            ));
            if ($count == 0) {
                // Удаляем вложение без возможности восстановления
                wp_delete_attachment($id, true);
            }
        }
    }
}

// Запускаем функцию раз в сутки
if (!wp_next_scheduled('wptask_daily_attachment_cleanup')) {
    wp_schedule_event(time(), 'daily', 'wptask_daily_attachment_cleanup');
}
add_action('wptask_daily_attachment_cleanup', 'wptask_remove_unused_attachments');

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

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

Как интегрировать автоматическое удаление с WPShop

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

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

Рекомендации по безопасности и тестированию

Автоматическое удаление файлов — потенциально опасная операция, поэтому придерживайтесь следующих правил:

  • Всегда делайте полные резервные копии сайта и базы данных перед внедрением автоматизации.
  • Тестируйте скрипты и плагины на тестовом сервере или локальной среде.
  • Используйте функцию перемещения в карантин (если есть) перед окончательным удалением.
  • Периодически проверяйте логи и отчеты о выполнении автоматизации.

Заключение

Автоматизация удаления старых медиа файлов — важный шаг в поддержке производительности и чистоты WordPress сайта. Используя готовые плагины и/или кастомные решения, вы можете существенно упростить рутинные задачи и сохранить ресурсы сервера. Наш пример кода поможет быстро запустить собственный процесс очистки, а интеграция с Clearfy Pro из WPShop сделает процесс ещё удобнее и безопаснее.

WooCommerce: автоматическое удаление старых отгруженных заказов
17.05.2026
Автоматический импорт пользователей в WordPress через CSV с примером кода
18.01.2026
Как изменить логин пользователя в WordPress без переустановки и регистрации
26.12.2025
Автоматическое создание отчёта об ошибках в WordPress
12.12.2025
WooCommerce: автоматическое удаление неоплаченных заказов через 24 часа
01.06.2026