В WordPress при загрузке изображений автоматически сохраняется множество метаданных (EXIF, IPTC и других), которые могут содержать информацию о камере, дате съёмки, геолокации и другом. Эта информация часто не нужна на сайте и может увеличивать размер файлов, а также потенциально раскрывать личные данные. В этой статье подробно расскажем, как эффективно удалять или изменять метаданные изображений в WordPress с помощью плагинов и кода.
Что такое метаданные изображений и зачем их удалять
Метаданные — это дополнительные данные, встроенные в файл изображения. Они помогают программам и устройствам понимать, как и когда сделана фотография, настройки камеры и иногда даже координаты GPS. Но для веб-сайтов эти данные обычно не нужны, и их наличие может:
- Увеличивать вес изображений, замедляя загрузку страниц.
- Раскрывать конфиденциальную информацию.
- Создавать проблемы с GDPR и безопасностью.
Поэтому часто полезно удалять или корректировать метаданные перед публикацией.
Удаление метаданных с помощью плагинов WordPress
Самый простой способ — использовать специализированные плагины. Рассмотрим несколько популярных и удобных вариантов.
1. WP Strip Metadata
Плагин автоматически удаляет метаданные из изображений при загрузке. Устанавливаете и активируете — и всё готово.
- Легкий и не нагружает сайт.
- Удаляет EXIF, IPTC и другие данные.
- Не требует настройки.
Скачать можно с официального репозитория WordPress или с WPSHOP.
2. Image Cleanup
Помимо удаления метаданных, позволяет оптимизировать картинки, уменьшая их размер без потери качества.
- Поддерживает массовую очистку уже загруженных изображений.
- Интегрируется с библиотеками оптимизации.
- Можно настроить, какие именно данные удалять.
Удаление и изменение метаданных через код в functions.php
Если вы хотите более гибко управлять метаданными или интегрировать очистку в свои плагины, можно написать функцию, которая будет очищать метаданные при загрузке.
Пример функции для удаления всех EXIF-данных
function wpmy_remove_image_metadata( $metadata, $attachment_id ) {
if ( isset( $metadata['image_meta'] ) ) {
// Очищаем все метаданные изображения
$metadata['image_meta'] = array();
}
return $metadata;
}
add_filter( 'wp_generate_attachment_metadata', 'wpmy_remove_image_metadata', 10, 2 );
Эта функция подключается к фильтру wp_generate_attachment_metadata, который вызывается при создании метаданных после загрузки. Мы просто обнуляем раздел image_meta, где хранятся данные EXIF.
Как изменить конкретные поля метаданных
Иногда нужно не удалить все, а заменить или добавить свои данные. Например, чтобы сбросить GPS-координаты:
function wpmy_modify_image_metadata( $metadata, $attachment_id ) {
if ( isset( $metadata['image_meta'] ) ) {
// Удаляем GPS-данные
unset( $metadata['image_meta']['gps'] );
// Или можно задать свои значения
$metadata['image_meta']['created_timestamp'] = time();
}
return $metadata;
}
add_filter( 'wp_generate_attachment_metadata', 'wpmy_modify_image_metadata', 10, 2 );
Массовое удаление метаданных из уже загруженных изображений
Если на сайте уже много изображений с метаданными, можно выполнить массовую очистку через скрипт.
Пример простого скрипта для массовой очистки
function wpmy_bulk_remove_metadata() {
$args = array(
'post_type' => 'attachment',
'post_mime_type' => 'image',
'posts_per_page' => -1,
);
$query = new WP_Query( $args );
foreach ( $query->posts as $attachment ) {
$metadata = wp_get_attachment_metadata( $attachment->ID );
if ( isset( $metadata['image_meta'] ) ) {
$metadata['image_meta'] = array();
wp_update_attachment_metadata( $attachment->ID, $metadata );
}
}
}
// Запустите функцию один раз, например, через admin_init или вручную
// add_action( 'admin_init', 'wpmy_bulk_remove_metadata' );
Этот код перебирает все изображения в библиотеке и очищает их метаданные. Важно запускать его аккуратно, чтобы не нагружать сервер.
Оптимизация изображений с удалением метаданных через WPMy и интеграция с плагинами
Для комплексного решения можно использовать плагины, которые объединяют очистку метаданных с оптимизацией. К примеру, плагин Clearfy Pro от WPSHOP умеет отключать загрузку ненужных метаданных и ускорять работу сайта.
Также полезно комбинировать удаление метаданных с отложенной загрузкой изображений (lazy load), например с помощью плагина WPStories, который оптимизирует медиа и улучшает UX.
Подводные камни и рекомендации
Удаление метаданных полезно, но стоит помнить:
- Некоторые плагины и темы могут использовать EXIF для отображения информации (например, дата съёмки).
- Удаление метаданных необратимо — делайте резервные копии.
- Оптимизируйте изображения комплексно: сжатие, удаление метаданных и корректный формат.
Таким образом, удаление или изменение метаданных изображений — важный шаг в оптимизации и безопасности WordPress-сайта. Используйте готовые решения или пишите свои функции, чтобы гибко управлять этими данными.