В процессе ведения сайта на WordPress медиа-библиотека часто разрастается — накапливаются изображения, которые больше не используются ни в каких записях, страницах или настройках темы. Это приводит к увеличению размера базы данных и затрудняет управление сайтом. В этой статье я подробно расскажу, как найти и удалить неиспользуемые изображения на WordPress, используя проверенные плагины и кастомные решения с примерами кода.
Почему важно удалять неиспользуемые изображения в WordPress
Каждое сохранённое изображение занимает место на сервере и в базе данных. Если сайт существует несколько лет и активно наполняется контентом, то в медиа-библиотеке копятся тысячи файлов, из которых реально используются только часть. Оставшиеся — мусор, который замедляет бэкапы, увеличивает время сканирования сайта и усложняет поиск нужных файлов.
Удаление неиспользуемых изображений помогает:
- Освободить дисковое пространство на хостинге.
- Ускорить загрузку медиа-библиотеки в админке.
- Сделать бэкапы легче и быстрее.
- Избавиться от дублирующих и устаревших файлов.
Однако удалять изображения вручную крайне неудобно и рискованно: легко случайно удалить нужный файл. Лучший подход — автоматизировать этот процесс.
Плагины для удаления неиспользуемых изображений в WordPress
Существует несколько плагинов, которые помогут быстро найти и удалить неиспользуемые изображения. Рассмотрим самые популярные и надёжные.
1. Media Cleaner
Media Cleaner от Meow Apps — один из лучших инструментов для очистки медиа-библиотеки. Плагин анализирует все записи, страницы, виджеты, а также мультимедиа, используемые в плагинах и темах, и находит файлы, которые не связаны с контентом.
Основные возможности Media Cleaner:
- Сканирование всей базы данных и контента на наличие ссылок к изображениям.
- Идентификация неиспользуемых и дублирующих файлов.
- Возможность удаления или перемещения таких файлов в корзину.
- Отдельный режим для работы с мультимедиа, используемым для плагинов или тем.
Для использования достаточно установить и активировать плагин, затем в настройках выбрать «Scan» и дождаться результата. После сканирования можно удалить ненужные файлы напрямую из админки.
2. WP-Optimize
Хотя WP-Optimize — это плагин для оптимизации базы данных и кеширования, он также включает инструменты для очистки неиспользуемых медиафайлов. В бесплатной версии функционал ограничен, но для базовой очистки подойдёт.
Преимущества WP-Optimize:
- Интеграция с очисткой базы данных и оптимизацией сайта.
- Интуитивный интерфейс для удаления лишних файлов.
- Поддержка планировщика задач.
3. Media Deduper
Если в дополнение к неиспользуемым изображениям вы хотите выявить и удалить дубликаты, Media Deduper — отличное решение. Плагин анализирует медиа-библиотеку, находит копии и предлагает выбрать, какие удалять.
Важно: перед удалением всегда делайте резервную копию.
Как написать свой скрипт для поиска неиспользуемых изображений в WordPress
Если по каким-то причинам вы не хотите использовать плагины или хотите встроить функционал в собственную тему/плагин, можно написать пользовательскую функцию. Ниже пример кода, который ищет изображения, не вставленные в контент записей или страниц.
Принцип работы:
- Получаем все медиафайлы с типом 'image'.
- Проверяем, встречается ли URL файла в содержимом записей и страниц.
- Если нет — считаем файл неиспользуемым.
function wplock_find_unused_images() {
$args = array(
'post_type' => 'attachment',
'post_mime_type' => 'image',
'posts_per_page' => -1,
);
$attachments = get_posts($args);
$unused = array();
foreach ($attachments as $attachment) {
$url = wp_get_attachment_url($attachment->ID);
if (!$url) continue;
$found = false;
$posts = get_posts(array('post_type' => array('post', 'page'), 'posts_per_page' => -1));
foreach ($posts as $post) {
if (strpos($post->post_content, $url) !== false) {
$found = true;
break;
}
}
if (!$found) {
$unused[] = $attachment;
}
}
return $unused;
}Эту функцию можно вызывать, чтобы получить массив неиспользуемых медиафайлов. Далее можно вывести их список в админке и добавить кнопку для удаления.
Как безопасно удалить найденные изображения
Для удаления используйте функцию wp_delete_attachment(), которая удалит файл и всю связанную с ним информацию:
function wplock_delete_unused_images() {
$unused = wplock_find_unused_images();
foreach ($unused as $attachment) {
wp_delete_attachment($attachment->ID, true); // true — удаляет физический файл
}
}Важно запустить удаление только после проверки списка, чтобы не удалить нужные файлы.
Дополнительные советы по работе с медиа в WordPress
Оптимизация изображений
Чтобы не накапливать лишние тяжелые файлы, используйте плагины для оптимизации изображений, например, Smush или ShortPixel. Они автоматически сжимают и уменьшают вес файлов при загрузке.
Использование CDN для медиа
Подключение CDN (Content Delivery Network) разгружает сервер и ускоряет доставку медиа пользователям. Популярные решения: Cloudflare, BunnyCDN, KeyCDN.
Регулярная проверка и поддержка
Регулярно проверяйте медиа-библиотеку на наличие неиспользуемых файлов. Запланируйте очистку хотя бы раз в полгода. Это позволит сохранить порядок и производительность сайта.
Итог
Удаление неиспользуемых изображений — важный этап поддержания WordPress сайта в оптимальном состоянии. Используйте готовые плагины для удобства или пишите свои функции, если нужно гибко контролировать процесс. Не забывайте про резервные копии и тестирование перед массовым удалением.