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

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

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

Удаление файлов через стандартный интерфейс WordPress — это первый шаг, но не всегда он гарантирует полное удаление. Часто возникают ситуации, когда:

  • Файлы продолжают занимать место на сервере, хотя в админке они уже не отображаются.
  • В базе данных остаются записи о файлах, которые создают «мертвые» ссылки и могут вызывать ошибки.
  • Плагины или темы используют медиафайлы напрямую из папки uploads, и удаление из админки не заметно отражается.

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

Удаление файлов через стандартный интерфейс WordPress

Самый простой способ удалить файл — зайти в Медиабиблиотеку, найти нужный файл, нажать кнопку Удалить навсегда. Это удалит запись из базы данных и, как правило, сам файл из папки wp-content/uploads.

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

Массовое удаление файлов

В режиме списка медиабиблиотеки выберите несколько файлов галочками, выберите «Удалить навсегда» в выпадающем меню «Действия» и нажмите «Применить».

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

Использование плагинов для правильного удаления медиафайлов

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

Плагин Media Cleaner

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

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

  • Поиск неиспользуемых файлов по базе данных и контенту.
  • Удаление как из базы данных, так и физически с сервера.
  • Поддержка WooCommerce, ACF и других плагинов.

Для установки перейдите в раздел «Плагины» — «Добавить новый» и введите в поиске «Media Cleaner». Установите и активируйте.

Пример использования Media Cleaner

После активации перейдите в Медиа — Cleaner. Нажмите кнопку «Scan» для поиска неиспользуемых файлов. После завершения сканирования плагин покажет список файлов, которые можно безопасно удалить.

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

Программное удаление медиафайлов через код

Если вам нужно автоматизировать удаление файлов по определенным критериям, можно использовать PHP-функции WordPress. Ниже пример функции для удаления файла из медиабиблиотеки по ID, которая удаляет запись и физический файл.

function wponline_delete_attachment_by_id($attachment_id) {
    if (!current_user_can('delete_post', $attachment_id)) {
        return false; // Проверка прав пользователя
    }
    // Удаляет запись из базы данных и физический файл
    $deleted = wp_delete_attachment($attachment_id, true);
    return $deleted;
}

Эта функция использует встроенную функцию wp_delete_attachment, где второй параметр true означает удаление физического файла с сервера.

Пример вызова функции

$attachment_id = 123; // ID файла в медиабиблиотеке
$result = wponline_delete_attachment_by_id($attachment_id);
if ($result) {
    echo 'Файл успешно удалён';
} else {
    echo 'Ошибка при удалении файла';
}

Как найти и удалить «мертвые» записи в базе данных

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

Пример SQL-запроса, который находит вложения без файлов:

SELECT ID, post_title FROM wp_posts
WHERE post_type = 'attachment'
AND ID NOT IN (
    SELECT pm.post_id FROM wp_postmeta pm
    WHERE pm.meta_key = '_wp_attached_file'
);

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

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

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

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

Выводы и лучшие практики

  • Используйте стандартное удаление через медиабиблиотеку для единичных файлов.
  • Для массового удаления и очистки используйте плагин Media Cleaner.
  • Для автоматизации можно использовать PHP-функцию wponline_delete_attachment_by_id.
  • Проверяйте базу данных на наличие «мертвых» записей и очищайте их при необходимости.
  • Всегда делайте резервные копии перед удалением.
Как удалить старые мета-данные в WordPress: практическое руководство
12.03.2026
Как удалить файлы из медиабиблиотеки WordPress правильно
10.11.2025
WordPress: как создать собственную таблицу в базе данных и работать с ней
30.11.2025
WooCommerce: автоматическое отключение способов оплаты при проблемах с интернет-соединением
30.05.2026
Как создать настройки плагинов WordPress с использованием Settings API
09.01.2026