Медиабиблиотека WordPress со временем может разрастаться, включая множество неиспользуемых изображений, видео и других файлов. Такие файлы занимают место на сервере, замедляют бэкапы и усложняют управление сайтом. В этой статье подробно рассмотрим, как найти и удалить неиспользуемые медиа файлы, а также оптимизировать медиабиблиотеку.
Почему важно удалять неиспользуемые медиа файлы
Постоянное накопление неиспользуемых файлов приводит к:
- Увеличению занимаемого дискового пространства.
- Замедлению работы сайта и бэкапов.
- Сложностям в управлении библиотекой.
Регулярная очистка и оптимизация медиабиблиотеки помогает поддерживать порядок и улучшает производительность.
Как определить, какие медиа файлы не используются
В WordPress нет встроенного инструмента для поиска неиспользуемых файлов, поэтому применяют следующие подходы:
1. Использование плагинов для поиска неиспользуемых медиа файлов
Есть несколько плагинов, которые автоматически анализируют записи, страницы, виджеты и шаблоны, чтобы выявить неиспользуемые файлы:
- Media Cleaner — один из лучших плагинов для очистки медиабиблиотеки, сканирует базу данных и папки с файлами.
- WP-Optimize — содержит функцию очистки неиспользуемых изображений и оптимизации базы данных.
Плагины удобны, но требуют осторожности: перед удалением рекомендуется создавать резервные копии.
2. Ручной поиск и удаление через код
Если вы предпочитаете контролировать процесс, можно использовать кастомный код для выявления неиспользуемых вложений (attachment), которые не связаны с записями.
function wpset_get_unused_attachments() {
global $wpdb;
$attachments = $wpdb->get_results("SELECT ID FROM {$wpdb->posts} WHERE post_type = 'attachment'");
$unused = [];
foreach ($attachments as $attachment) {
$meta = get_post_meta($attachment->ID);
$parent = get_post($attachment->post_parent);
if (!$parent || $attachment->post_parent == 0) {
// Дополнительно можно проверять вхождение в контент
$unused[] = $attachment->ID;
}
}
return $unused;
}
Далее эти ID можно использовать для удаления через wp_delete_attachment().
Как безопасно удалить неиспользуемые медиа файлы
Удаление напрямую через файловую систему или базу данных не рекомендуется. Безопасный способ — использовать функции WordPress:
function wpset_delete_attachments($attachment_ids) {
foreach ($attachment_ids as $id) {
wp_delete_attachment($id, true); // true — удаляет физические файлы
}
}
Перед массовым удалением обязательно сделайте резервную копию сайта и базы данных.
Пример автоматизации удаления неиспользуемых файлов
Можно объединить поиск и удаление в одну функцию для периодической очистки:
function wpset_clean_unused_media() {
$unused = wpset_get_unused_attachments();
if (!empty($unused)) {
wpset_delete_attachments($unused);
}
}
// Для запуска вручную или через WP-Cron
// wpset_clean_unused_media();
Оптимизация изображений и медиабиблиотеки
После очистки полезно оптимизировать оставшиеся изображения, чтобы уменьшить размер и повысить скорость загрузки:
- Плагины для оптимизации: Imagify, ShortPixel, Smush.
- Автоматическая оптимизация при загрузке: активируйте функцию в плагинах для автоматического сжатия новых файлов.
- Ручная оптимизация: используйте онлайн-сервисы или инструменты для пакетного сжатия.
Настройка WebP формата в WordPress
WebP — современный формат изображений с хорошим сжатием. Для поддержки WebP можно использовать плагин Clearfy Pro, который добавляет конвертацию и правильную выдачу WebP в медиабиблиотеке.
Заключение
Регулярная очистка и оптимизация медиабиблиотеки в WordPress необходимы для поддержания производительности сайта и удобства управления. Используйте специализированные плагины для автоматизации, либо кастомный код для тонкой настройки. Не забывайте делать резервные копии перед удалением файлов.
Для удобства управления и оптимизации рекомендуем попробовать плагин Media Cleaner и Clearfy Pro.