С течением времени на сайте WordPress накапливается большое количество медиафайлов, особенно изображений, которые часто остаются неиспользуемыми. Такие файлы занимают место на сервере, замедляют резервное копирование и усложняют управление медиа-библиотекой. В этой статье разберём, как эффективно найти и удалить неиспользуемые изображения в WordPress с помощью плагинов и пользовательских скриптов.
Почему важно удалять неиспользуемые изображения в WordPress
Изображения занимают значительный объем на хостинге, особенно если сайт активно развивается и публикует много контента с картинками. Важно регулярно чистить медиа-библиотеку от неиспользуемых файлов, чтобы:
- Освободить место на диске, что особенно актуально для тарифов с ограничениями;
- Улучшить скорость резервного копирования и восстановления сайта;
- Снизить нагрузку на сервер при работе с медиа;
- Упростить управление и поиск нужных файлов;
- Избежать проблемы с SEO, если изображения ссылаются на удалённые страницы.
Многие редакторы и пользователи загружают изображения, которые потом не вставляют в записи или страницы, либо изображения остаются от удалённых материалов. Такие медиафайлы называются неиспользуемыми.
Поиск неиспользуемых изображений с помощью плагинов
Существует несколько популярных плагинов, которые помогают быстро найти и безопасно удалить неиспользуемые изображения.
1. Media Cleaner
Media Cleaner — мощный и удобный плагин для очистки медиа-библиотеки от неиспользуемых файлов. Он сканирует базу данных и файлы, анализирует использованные URL и связи с контентом.
Преимущества:
- Поддержка стандартных записей, страниц, WooCommerce, плагинов;
- Возможность предварительного просмотра и восстановления удалённых файлов;
- Совместимость с WPML и другими мультисайтами;
- Простой интерфейс с фильтрами и сортировкой.
Недостатки — бесплатная версия ограничена по функционалу, для глубокого сканирования некоторых плагинов нужна PRO версия.
2. DNUI (Delete Not Used Image)
Этот плагин ищет изображения, не вставленные в записи и страницы, и предлагает их удалить. Он простой, но эффективный для небольших сайтов.
Минусы — не проверяет использование в кастомных полях и некоторых плагинах.
Пример скрипта для поиска неиспользуемых изображений в WordPress
Если вы хотите автоматизировать проверку и интегрировать её в собственный функционал, можно написать пользовательскую функцию. Ниже пример функции wpbook_find_unused_images(), которая ищет изображения из медиа-библиотеки, не вставленные в контент записей и страниц.
function wpbook_find_unused_images() {
global $wpdb;
// Получаем все изображения из медиа
$attachments = $wpdb->get_results("SELECT ID, post_title FROM {$wpdb->posts} WHERE post_type = 'attachment' AND post_mime_type LIKE 'image/%'");
$unused = [];
foreach ($attachments as $attachment) {
$id = $attachment->ID;
$url = wp_get_attachment_url($id);
// Проверяем, используется ли URL в контенте постов
$count = $wpdb->get_var($wpdb->prepare(
"SELECT COUNT(*) FROM {$wpdb->posts} WHERE post_content LIKE %s",
'%' . $wpdb->esc_like($url) . '%'
));
if ($count == 0) {
$unused[] = [
'ID' => $id,
'title' => $attachment->post_title,
'url' => $url
];
}
}
return $unused;
}Этот код можно вызвать, например, в консоли администратора или через AJAX для вывода списка неиспользуемых изображений. Далее их можно удалить программно через wp_delete_attachment($id, true).
Как безопасно удалить неиспользуемые изображения
Перед удалением обязательно сделайте резервную копию сайта и базы данных. Удаление изображений — необратимая операция, и ошибки могут привести к потере важных файлов.
Рекомендуется сначала перенести найденные неиспользуемые изображения в отдельную папку или пометить их. Для этого можно использовать плагин Media Cleaner, который помещает помеченные файлы в карантин.
Если удалять вручную через пользовательский скрипт, используйте функцию с параметром $force_delete = true для полного удаления:
foreach ($unused_images as $img) {
wp_delete_attachment($img['ID'], true); // true - удаляет физический файл
}Дополнительные советы по работе с медиа в WordPress
Оптимизация изображений
Перед загрузкой изображений на сайт используйте сервисы сжатия, такие как Clearfy Pro, который включает инструменты оптимизации и очистки. Это поможет уменьшить размер файлов и ускорить загрузку страниц.
Использование CDN
Для ускорения загрузки медиа рекомендуем подключать CDN (Content Delivery Network), например, Cloudflare или BunnyCDN. Они кэшируют изображения и уменьшают нагрузку на основной сервер.
Стандартизация и организация медиафайлов
Организуйте медиабиблиотеку, используя папки и тегирование (через плагины), чтобы легче управлять изображениями и быстро находить нужные.