Со временем в медиабиблиотеке WordPress накапливается множество изображений, которые уже не используются на страницах и в записях сайта. Это приводит к увеличению размера бэкапов, замедлению работы сервера и усложнению управления контентом. В этой статье мы подробно разберём, как найти и удалить такие неиспользуемые изображения, используя готовые плагины и собственные функции WordPress.
Почему важно удалять неиспользуемые изображения в WordPress
Удаление лишних медиафайлов помогает:
- Сэкономить дисковое пространство на сервере.
- Ускорить создание бэкапов и восстановление сайта.
- Оптимизировать работу медиабиблиотеки и упростить её использование.
- Повысить безопасность, убрав потенциально устаревшие и незадокументированные файлы.
Однако удалять изображения стоит аккуратно, чтобы случайно не сломать отображение контента.
Как определить, какие изображения не используются в WordPress
Определить, какие изображения не используются, можно несколькими способами:
1. Анализ контента и метаданных
Изображения могут использоваться в:
- Основном содержимом записей и страниц (теги <img>).
- В настройках темы (например, фоновые изображения, логотипы).
- В виджетах и элементах меню.
- В галереях и слайдерах.
Если изображение не встречается ни в одном из этих мест, скорее всего, оно не нужно.
2. Поиск по базе данных
Можно написать SQL-запросы, которые ищут упоминания ID вложений в таблицах wp_posts, wp_postmeta, wp_options и т.д. Однако, это требует аккуратности и знаний SQL.
3. Использование плагинов
Самый простой способ — использовать специализированные плагины, которые автоматически сканируют медиабиблиотеку и показывают неиспользуемые изображения.
Рекомендуемые плагины для удаления неиспользуемых изображений
Media Cleaner
Один из самых популярных плагинов для очистки медиабиблиотеки. Он сканирует сайт и выявляет файлы, которые не привязаны к контенту. Плагин поддерживает работу с кастомными типами записей и плагинами.
Скачать Media Cleaner с WPSHOP
DNUI (Delete Not Used Image)
Простой плагин, который ищет изображения, не используемые в записях и страницах. Имеет удобный интерфейс для массового удаления.
Enable Media Replace
Хотя этот плагин не удаляет медиафайлы, он позволяет легко заменить изображения, что помогает избавляться от дублей и устаревших файлов в процессе редактирования.
Скачать Enable Media Replace с WPSHOP
Пример собственного решения для поиска неиспользуемых изображений в WordPress
Если вы хотите более точечный контроль, можно написать функцию, которая проверит, используются ли вложения в содержимом сайта. Вот упрощённый пример функции wpchecker_is_image_used, которая проверяет, встречается ли URL изображения в записях:
function wpchecker_is_image_used($attachment_id) {
$url = wp_get_attachment_url($attachment_id);
if (!$url) return false;
global $wpdb;
$like_url = '%' . $wpdb->esc_like($url) . '%';
// Проверяем наличие URL в содержимом записей
$count = $wpdb->get_var($wpdb->prepare(
"SELECT COUNT(*) FROM $wpdb->posts WHERE post_content LIKE %s AND post_status = 'publish'",
$like_url
));
return $count > 0;
}Далее можно перебрать все вложения с типом image и проверить, неиспользуемы ли они:
function wpchecker_delete_unused_images() {
$args = [
'post_type' => 'attachment',
'post_mime_type' => 'image%',
'posts_per_page' => -1,
'post_status' => 'inherit',
];
$images = get_posts($args);
foreach ($images as $image) {
if (!wpchecker_is_image_used($image->ID)) {
wp_delete_attachment($image->ID, true); // Безвозвратное удаление
}
}
}<Эту функцию рекомендуется запускать с осторожностью и после создания резервной копии сайта.
Как безопасно удалить изображения: рекомендации
Перед удалением неиспользуемых изображений обязательно:
- Сделайте полный бэкап файлов и базы данных.
- Проверьте работу сайта после удаления на тестовом сервере или в режиме восстановления.
- Используйте плагины с функцией предварительного просмотра и возможности отмены удаления.
Иногда изображения используются в нестандартных местах, например, в CSS-файлах или настройках плагинов. Не забудьте проверить эти варианты.
Дополнительные советы по оптимизации медиабиблиотеки
Используйте плагин Clearfy Pro
Clearfy Pro содержит инструменты для оптимизации базы данных, включая очистку медиафайлов и удаление неиспользуемых элементов. Поддерживает интеграцию с популярными плагинами и темами.
Подробнее о Clearfy Pro на WPSHOP
Оптимизируйте изображения перед загрузкой
Чтобы не перегружать медиатеку, используйте плагины для сжатия изображений, например, Smush или EWWW Image Optimizer. Это поможет уменьшить размер файлов без потери качества.
Регулярно проводите аудит медиабиблиотеки
Установите периодический мониторинг, чтобы не допускать накопления лишних файлов. Это можно сделать с помощью Cron-задач и собственного кода или через плагины.
Таким образом, регулярная очистка медиабиблиотеки от неиспользуемых изображений — важная часть поддержки сайта на WordPress. Используйте готовые решения или пишите собственные функции для эффективной оптимизации и поддержания скорости работы вашего ресурса.