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

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

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

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

Удаление таких файлов помогает:

  • Освободить место на сервере.
  • Ускорить загрузку сайта и работу панели администратора.
  • Упростить управление медиа библиотекой.
  • Снизить нагрузку на резервное копирование.

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

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

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

1. Clearfy Pro — универсальный плагин для оптимизации WordPress с функцией очистки мусора, включая медиа. Позволяет безопасно удалять неиспользуемые файлы, делая резервные копии перед удалением.

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

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

Поиск неиспользуемых медиа с помощью пользовательского кода

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

function wpbox_find_unused_media() {
    global $wpdb;
    // Получаем все ID вложений
    $attachments = $wpdb->get_col("SELECT ID FROM {$wpdb->posts} WHERE post_type = 'attachment'");
    $unused = [];
    foreach ($attachments as $id) {
        $used = false;
        // Проверяем, используется ли вложение в каком-либо посте
        $count = $wpdb->get_var($wpdb->prepare(
            "SELECT COUNT(*) FROM {$wpdb->posts} WHERE post_content LIKE %s",
            '%' . $wpdb->esc_like(wp_get_attachment_url($id)) . '%'
        ));
        if ($count == 0) {
            // Проверяем, прикреплено ли вложение к посту
            $parent = get_post_field('post_parent', $id);
            if (!$parent) {
                $unused[] = $id;
            }
        }
    }
    return $unused;
}

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

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

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

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

Пример удаления вложения по ID с помощью кода:

function wpbox_delete_unused_media($attachment_id) {
    if (wp_delete_attachment($attachment_id, true)) {
        echo "Вложение с ID {$attachment_id} успешно удалено.";
    } else {
        echo "Ошибка при удалении вложения с ID {$attachment_id}.";
    }
}

Рекомендации по автоматизации и регулярному обслуживанию

Чтобы не накапливать мусор, настройте регулярный аудит медиа библиотеки. Можно использовать WP Cron для запуска проверок и удалений по расписанию.

Пример простой автоматизации удаления неиспользуемых медиа раз в неделю:

function wpbox_cron_delete_unused_media() {
    $unused = wpbox_find_unused_media();
    foreach ($unused as $id) {
        wp_delete_attachment($id, true);
    }
}

if (!wp_next_scheduled('wpbox_weekly_media_cleanup')) {
    wp_schedule_event(time(), 'weekly', 'wpbox_weekly_media_cleanup');
}
add_action('wpbox_weekly_media_cleanup', 'wpbox_cron_delete_unused_media');

Для более удобного управления можно использовать плагин My Popup для уведомлений администраторов о больших объемах неиспользуемых файлов.

Заключение по теме удаления неиспользуемых медиа

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

Более продвинутые инструменты, такие как Clearfy Pro, помогут оптимизировать не только медиа, но и другие аспекты сайта, делая вашу работу проще и эффективнее.

WordPress: как изменить URL авторской страницы
13.11.2025
Как исправить проблему с не обновляющейся ценой вариаций товаров в WooCommerce
12.05.2026
Как создать свой виджет в WordPress: подробное руководство с примерами кода
14.01.2026
Как отключить автоматическое масштабирование изображений в WooCommerce
24.04.2026
Автоматизация управления пользовательскими ролями в WordPress
21.03.2026