С ростом контента на сайте WordPress количество загруженных медиа файлов может существенно увеличиваться. Многие из них со временем становятся неиспользуемыми, занимают место на сервере и замедляют работу сайта. В этой статье мы рассмотрим, как автоматизировать процесс удаления таких старых и неиспользуемых медиа файлов, чтобы поддерживать чистоту и оптимизацию вашего сайта.
Почему важно удалять старые медиа файлы в WordPress
Медиа файлы занимают значительный объем дискового пространства, особенно если ваш сайт содержит много изображений, видео и документации. С течением времени часть файлов становится неактуальной или перестает использоваться в записях, страницах и виджетах. Оставлять такие файлы без контроля — значит:
- Загружать сервер лишним контентом.
- Увеличивать время резервного копирования.
- Замедлять загрузку сайта из-за большого количества файлов.
- Увеличивать стоимость хостинга при ограниченном тарифе.
Автоматизация удаления позволяет решать эти проблемы без необходимости ручного мониторинга и удаления.
Как найти неиспользуемые медиа файлы в WordPress
Прежде чем удалять файлы, важно убедиться, что они действительно не используются. Для этого можно использовать несколько подходов:
Использование плагинов для поиска неиспользуемых медиа
Существует несколько плагинов, которые анализируют базу данных и контент сайта, чтобы определить, какие медиа файлы не вставлены в записи или страницы. Рекомендуемые плагины:
- Media Cleaner — мощный инструмент, который сканирует библиотеку и находит неиспользуемые файлы.
- Clearfy Pro — оптимизационный плагин с функциями очистки медиа и базы данных.
Эти плагины позволяют безопасно удалять неиспользуемые файлы после проверки.
Ручной поиск через базу данных и медиа библиотеку
Для опытных разработчиков можно написать SQL-запросы, которые выявляют медиа файлы, не связанные с постами. Но этот метод требует осторожности и бэкапа данных.
Автоматизация удаления с помощью кода
Чтобы регулярно очищать медиа библиотеку от старых и неиспользуемых файлов, можно написать функцию с использованием WordPress Cron. Такой подход позволяет проводить проверку и удаление автоматически по расписанию.
Пример функции для удаления неиспользуемых медиа
Ниже пример функции wpdownload_remove_unused_media, которая ищет вложения без связанных записей и удаляет их:
function wpdownload_remove_unused_media() {
global $wpdb;
// Получаем ID всех вложений
$attachments = $wpdb->get_col("SELECT ID FROM {$wpdb->posts} WHERE post_type = 'attachment'");
foreach ($attachments as $attachment_id) {
// Проверяем связи с другими постами
$count = $wpdb->get_var($wpdb->prepare(
"SELECT COUNT(*) FROM {$wpdb->postmeta} WHERE meta_key = '_thumbnail_id' AND meta_value = %d",
$attachment_id
));
if ($count === '0') {
$post = get_post($attachment_id);
// Проверяем, используется ли вложение в контенте
if ($post && strpos($post->post_content, wp_get_attachment_url($attachment_id)) === false) {
wp_delete_attachment($attachment_id, true);
}
}
}
}
// Добавляем событие в крон
if (!wp_next_scheduled('wpdownload_cleanup_unused_media')) {
wp_schedule_event(time(), 'daily', 'wpdownload_cleanup_unused_media');
}
add_action('wpdownload_cleanup_unused_media', 'wpdownload_remove_unused_media');Эта функция запускается ежедневно и удаляет вложения, не используемые в качестве миниатюр и не вставленные в контент.
Безопасность и бэкап
Перед автоматическим удалением рекомендуется делать резервные копии сайта и базы данных. Также полезно добавить логи удаления, чтобы отслеживать удаленные файлы.
Дополнительные рекомендации и плагины для оптимизации медиа
Для комплексной работы с медиа файлами рекомендуем следующие решения:
- Clearfy Pro — не только очистка, но и оптимизация базы данных, кэширование и ускорение сайта.
- WPRemark — улучшение качества контента и анализ использования медиа.
Кроме того, можно настроить автоматическую оптимизацию изображений и lazy loading для ускорения загрузки сайта.
Пример настройки Clearfy для очистки медиа
После установки Clearfy Pro в панели управления появится раздел очистки медиа. Там можно настроить расписание и параметры удаления временных и неиспользуемых файлов.
Выводы и практические советы
Автоматизация удаления старых медиа файлов помогает поддерживать производительность сайта и экономить ресурсы хостинга. Используйте проверенные плагины и комбинируйте их с кастомными решениями на базе WP Cron. Обязательно делайте резервные копии и тестируйте функции на тестовом окружении перед применением на живом сайте.
Если нужна дополнительная помощь с автоматизацией и оптимизацией WordPress, рекомендуем ознакомиться с плагинами от WPSHOP — они помогут упростить процесс и избежать типичных ошибок.