Со временем в библиотеке медиафайлов WordPress накапливается много изображений, видео и других файлов, которые уже не используются на сайте. Они занимают место на сервере и могут замедлять работу сайта. В этой статье разберём, как найти и удалить неиспользуемые файлы в Media Library WordPress, используя готовые плагины и собственные скрипты. Это поможет поддерживать сайт в порядке и улучшить его производительность.
Почему важно удалять неиспользуемые файлы из медиатеки WordPress
Многие пользователи загружают изображения и медиафайлы для статей, страниц или проектов, но потом удаляют контент или заменяют изображения, оставляя старые файлы в медиатеке. Эти файлы:
- Занимают дисковое пространство хостинга;
- Увеличивают время резервного копирования;
- Могут замедлять загрузку страницы при неправильной настройке;
- Создают беспорядок в медиатеке, усложняя поиск нужных файлов.
Регулярная чистка медиатеки — важная часть технического обслуживания сайта.
Плагины для поиска и удаления неиспользуемых файлов в WordPress
Media Cleaner
Один из самых популярных и эффективных плагинов для поиска неиспользуемых файлов — Media Cleaner. Он анализирует базу данных и контент сайта, выявляя файлы, которые нигде не используются.
Основные возможности Media Cleaner:
- Сканирование файловой системы и базы данных;
- Предварительный просмотр и подтверждение удаления;
- Поддержка популярных плагинов и конструкторов страниц;
- Работа с внешними URL и мультимедиа;
- Опция безопасного удаления с возможностью восстановления.
Для установки плагина зайдите в админ-панель WordPress, перейдите в раздел «Плагины» → «Добавить новый», введите в поиске «Media Cleaner», установите и активируйте.
Пример использования Media Cleaner Pro (платная версия)
Pro-версия поддерживает интеграцию с WooCommerce, ACF, WPBakery, Elementor, что позволяет точнее находить неиспользуемые изображения в сложных конструкциях сайта.
После активации зайдите в меню плагина, запустите сканирование и внимательно проверьте найденные файлы перед удалением. Рекомендуется делать резервную копию базы данных и файлов.
Ручной метод: поиск неиспользуемых файлов с помощью SQL и PHP
Если вы не хотите использовать плагины, можно написать собственный код для поиска ссылок на файлы в контенте и сравнения с файлами в медиатеке.
Основная идея — получить список всех файлов из таблицы wp_posts с типом attachment и проверить, упоминаются ли они в таблице wp_posts с другими типами записей или в метаданных.
Пример функции wpco_find_unused_media_files()
function wpco_find_unused_media_files() {
global $wpdb;
// Получаем все ID вложений
$attachments = $wpdb->get_results("SELECT ID, guid FROM {$wpdb->posts} WHERE post_type = 'attachment'");
$unused = [];
foreach ($attachments as $attachment) {
$file_url = $attachment->guid;
$id = $attachment->ID;
// Проверяем наличие ссылки в контенте других записей
$count = $wpdb->get_var($wpdb->prepare(
"SELECT COUNT(*) FROM {$wpdb->posts} WHERE post_content LIKE %s",
'%' . $wpdb->esc_like($file_url) . '%'
));
// Проверяем наличие в метаданных
$meta_count = $wpdb->get_var($wpdb->prepare(
"SELECT COUNT(*) FROM {$wpdb->postmeta} WHERE meta_value LIKE %s",
'%' . $wpdb->esc_like($file_url) . '%'
));
if ($count == 0 && $meta_count == 0) {
$unused[] = ['ID' => $id, 'url' => $file_url];
}
}
return $unused;
}
// Использование функции
$unused_files = wpco_find_unused_media_files();
if (!empty($unused_files)) {
foreach ($unused_files as $file) {
echo 'Неиспользуемый файл: ' . esc_html($file['url']) . "\n";
}
} else {
echo 'Неиспользуемых файлов не найдено.';
}Этот пример не учитывает файлы, используемые через динамические ссылки, сторонние плагины или кастомные поля, но отлично подходит для базового поиска.
Автоматическое удаление неиспользуемых файлов с помощью WP-Cron
Для поддержания медиатеки в чистоте можно настроить автоматический процесс очистки с помощью WP-Cron и функции, подобной приведённой выше.
Пример регистрации задачи в functions.php вашей темы:
function wpco_schedule_media_cleanup() {
if (!wp_next_scheduled('wpco_media_cleanup_event')) {
wp_schedule_event(time(), 'weekly', 'wpco_media_cleanup_event');
}
}
add_action('wp', 'wpco_schedule_media_cleanup');
add_action('wpco_media_cleanup_event', 'wpco_perform_media_cleanup');
function wpco_perform_media_cleanup() {
$unused_files = wpco_find_unused_media_files();
foreach ($unused_files as $file) {
wp_delete_attachment($file['ID'], true);
}
}Такой подход требует осторожности и предварительного тестирования на тестовом сайте, чтобы не удалить нужные файлы.
Использование плагина Clearfy Pro для оптимизации медиафайлов и удаления мусора
Плагин Clearfy Pro предлагает комплексный набор инструментов для оптимизации сайта, включая очистку неиспользуемых медиафайлов.
Clearfy Pro умеет:
- Автоматически находить и удалять неиспользуемые изображения;
- Оптимизировать базу данных;
- Управлять загрузками и кешем.
Это удобное решение для тех, кто хочет автоматизировать процесс без глубоких технических знаний.
Советы по безопасности и резервному копированию при удалении файлов
Перед удалением медиафайлов обязательно создавайте резервную копию сайта и базы данных. В случае ошибки вы сможете быстро восстановить данные.
Также рекомендуется:
- Проводить удаление на тестовом сайте;
- Использовать функции предварительного просмотра удаляемых файлов;
- Не удалять файлы, если вы не уверены в их использовании на сайте;
- Следить за совместимостью с используемыми плагинами и темами.