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

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

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

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

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

Существует несколько популярных плагинов, которые помогают выявить и удалить неиспользуемые медиафайлы:

  • Media Cleaner — мощный инструмент, который сканирует контент сайта, включая страницы, записи, мета-поля, виджеты и даже пользовательские типы записей, чтобы найти неиспользуемые файлы. Есть бесплатная и про-версия с расширенным функционалом.
  • DNUI (Delete Not Used Image) — простой и легкий плагин, который ищет изображения, не прикрепленные к записям. Подходит для базового очищения.
  • WP-Optimize — плагин для оптимизации базы данных и сайта в целом, содержит инструмент для удаления неиспользуемых изображений.

Выбор плагина зависит от размера сайта и глубины анализа, которую вы хотите провести. Для серьезного аудита советуем Media Cleaner Pro.

Пример использования Media Cleaner для поиска неиспользуемых файлов

После установки и активации плагина Media Cleaner перейдите в раздел Media > Cleaner. Запустите сканирование — плагин проверит все записи, страницы, виджеты и кастомный контент на предмет ссылок на медиафайлы. По окончании сканирования вы увидите список неиспользуемых файлов, которые можно безопасно удалить.

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

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

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

Пример функции с префиксом wpreg_, которая возвращает ID вложений, не используемых в записях:

function wpreg_get_unused_attachments() {
    global $wpdb;
    $attachments = $wpdb->get_col("SELECT ID FROM {$wpdb->posts} WHERE post_type = 'attachment'");
    $unused = [];
    foreach ($attachments as $attachment_id) {
        $file = get_attached_file($attachment_id);
        $used = $wpdb->get_var($wpdb->prepare(
            "SELECT COUNT(*) FROM {$wpdb->posts} WHERE post_content LIKE %s",
            '%' . basename($file) . '%'
        ));
        if (!$used) {
            $unused[] = $attachment_id;
        }
    }
    return $unused;
}

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

Удаление неиспользуемых вложений через код

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

function wpreg_delete_unused_attachments() {
    $unused = wpreg_get_unused_attachments();
    foreach ($unused as $attachment_id) {
        wp_delete_attachment($attachment_id, true); // true - удаляет файлы физически
    }
}

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

Особенности и подводные камни при удалении медиафайлов

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

Для безопасности:

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

Использование WP-CLI для безопасного удаления

Если у вас есть доступ к консоли сервера, можно использовать WP-CLI для поиска и удаления медиафайлов. Например, чтобы получить список всех вложений:

wp media list --field=ID

И удалять по одному или группами, предварительно проверив их использование.

Выводы и рекомендации по очистке медиа-библиотеки

Массовое удаление неиспользуемых медиафайлов — важная задача для поддержания производительности и экономии ресурсов сайта на WordPress. Использование готовых плагинов, таких как Media Cleaner, значительно упрощает эту задачу.

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

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

Создаем настройку для автоматического удаления спама в комментариях WordPress
30.12.2025
Как отключить Gutenberg и вернуть классический редактор в WordPress
12.12.2025
Как использовать хуки в WordPress для решения конкретных задач
09.01.2026
Как исключить товары и варианты WooCommerce по атрибуту из корзины и оформления заказа
25.05.2026
Как создать автоматические задачи в WordPress с помощью WPReg_cron
27.11.2025