Неиспользуемые изображения в WordPress со временем накапливаются и занимают лишнее место на сервере, замедляя работу сайта и усложняя управление медиафайлами. В этой статье разберём, как найти и удалить такие изображения, используя как готовые плагины, так и собственные скрипты на PHP.
Почему важно удалять неиспользуемые изображения в WordPress
Каждое загруженное в медиабиблиотеку изображение занимает дисковое пространство, а при большом количестве файлов это может привести к:
- Переполнению хранилища хостинга и дополнительным расходам.
- Ухудшению скорости резервного копирования и восстановления сайта.
- Сложности навигации в медиабиблиотеке и управлении контентом.
Удаление неиспользуемых изображений помогает поддерживать сайт в чистоте, экономить ресурсы хостинга и ускорять работу системы.
Как определить, какие изображения не используются
Ручной поиск через медиабиблиотеку
Вы можете попытаться определить неиспользуемые файлы вручную, просматривая медиатеку и сравнивая с контентом страниц и записей. Но при большом количестве файлов это непрактично и займет много времени.
Использование SQL-запросов для поиска
С помощью запросов к базе данных можно получить список файлов из таблицы wp_posts с типом attachment и проверить, используются ли они в мета-данных или контенте. Но это требует знаний SQL и осторожности, чтобы не повредить данные.
Плагины для автоматического поиска неиспользуемых изображений
Существует несколько плагинов, которые сканируют сайт и показывают список неиспользуемых медиафайлов:
- Media Cleaner — один из самых популярных плагинов для очистки медиатеки. Он анализирует контент и находит неиспользуемые изображения.
- Clearfy Pro — плагин с расширенными функциями оптимизации, включая очистку от мусора и неиспользуемых файлов.
Практическое использование плагина Media Cleaner
После установки и активации Media Cleaner:
- Перейдите в раздел Media Cleaner > Dashboard.
- Запустите сканирование кнопкой Scan. Плагин проанализирует все записи, страницы, виджеты и файлы.
- Просмотрите список найденных неиспользуемых изображений.
- Выберите файлы для удаления и нажмите Delete.
Обязательно сделайте резервную копию сайта перед удалением файлов, чтобы избежать потери важных данных.
Удаление неиспользуемых изображений с помощью собственного кода
Если вы хотите реализовать удаление неиспользуемых изображений без плагинов, можно написать функцию для поиска и удаления таких файлов.
Пример функции wpload_find_unused_images(), которая ищет вложения (attachments), не используемые в записях:
function wpload_find_unused_images() {
global $wpdb;
// Получаем все ID вложений
$attachments = $wpdb->get_col("SELECT ID FROM {$wpdb->posts} WHERE post_type = 'attachment'");
$unused = [];
foreach ($attachments as $attachment_id) {
// Проверяем, используется ли вложение в качестве миниатюры в записях
$used = $wpdb->get_var($wpdb->prepare(
"SELECT post_id FROM {$wpdb->postmeta} WHERE meta_key = '_thumbnail_id' AND meta_value = %d",
$attachment_id
));
// Проверяем, встречается ли URL изображения в контенте
$url = wp_get_attachment_url($attachment_id);
$count = $wpdb->get_var($wpdb->prepare(
"SELECT COUNT(*) FROM {$wpdb->posts} WHERE post_content LIKE %s",
'%' . $wpdb->esc_like($url) . '%'
));
if (!$used && $count == 0) {
$unused[] = $attachment_id;
}
}
return $unused;
}
// Использование
$unused_images = wpload_find_unused_images();
foreach ($unused_images as $id) {
wp_delete_attachment($id, true); // Удаляем без возможности восстановления
}
Данная функция ищет вложения, которые не прикреплены к записям в качестве миниатюры и не используются в содержимом. После получения списка можно удалить их с помощью wp_delete_attachment().
Особенности удаления изображений, используемых в плагинах и конструкторах страниц
Часто изображения используются в виджетах, плагинах визуального построения страниц (Elementor, WPBakery и др.) и не всегда отображаются в стандартном содержимом поста. Это усложняет автоматический поиск неиспользуемых медиафайлов.
Поэтому:
- Перед удалением тщательно проверьте, что файлы действительно не используются.
- Используйте плагин Clearfy Pro для более глубокой очистки с поддержкой популярных плагинов и тем.
- Создавайте резервные копии базы данных и файлов.
Рекомендации по оптимизации работы с изображениями в WordPress
Использование CDN и оптимизация изображений
Для ускорения загрузки сайта используйте CDN (Content Delivery Network) и оптимизируйте изображения с помощью плагинов, например, OmniVideo для видео и Clearfy Pro для оптимизации изображений и кэширования.
Регулярная проверка медиатеки
Периодически проводите аудит медиатеки, используя описанные методы, чтобы не допустить накопления мусора.
Автоматизация очистки
Настройте задачи CRON для автоматического удаления временных или неиспользуемых файлов, если это поддерживает ваш плагин или кастомный скрипт.