Метаданные изображений — это важная информация, которая хранится вместе с файлами медиа на вашем сайте WordPress. Они включают в себя дату создания, камеру, настройки съемки, геолокацию и другие данные EXIF, а также атрибуты alt, title и описание, используемые для SEO и доступности.
Почему нужно управлять метаданными изображений в WordPress
В некоторых случаях метаданные могут содержать лишнюю или конфиденциальную информацию, например, геолокацию или данные камеры, которые вы не хотите публиковать. Кроме того, избыточные метаданные увеличивают размер файла, что влияет на скорость загрузки сайта. Правильное управление alt и title помогает улучшить SEO и доступность сайта.
Удаление или изменение метаданных может понадобиться при массовой загрузке изображений, для оптимизации сайта или для соответствия политикам конфиденциальности.
Какие метаданные можно удалить или изменить в WordPress
Основные типы метаданных:
- EXIF и IPTC данные — технические и авторские данные, встроенные в файл изображения.
- Атрибуты alt и title — текстовые описания, используемые в HTML для SEO и доступности.
- Описание и подписи — дополнительные текстовые поля в библиотеке медиа WordPress.
WordPress по умолчанию не удаляет EXIF данные при загрузке, и некоторые из них могут быть видны в исходном файле. Для управления атрибутами alt и title есть разные подходы.
Удаление EXIF данных с помощью плагинов
Самый простой способ — использовать специализированные плагины, которые автоматически очищают метаданные при загрузке изображений.
Пример плагинов:
- Imsanity — автоматическое масштабирование и удаление EXIF данных.
- Strip Image Metadata — плагин для удаления всех EXIF метаданных.
Эти плагины работают «из коробки» и не требуют настроек, что удобно для новичков.
Как использовать плагин Strip Image Metadata
После установки и активации плагина все новые загруженные изображения будут очищены от EXIF данных автоматически. Чтобы обработать уже загруженные файлы, можно использовать дополнительные инструменты типа Regenerate Thumbnails.
Изменение и массовое редактирование alt и title с помощью кода
Иногда нужно программно изменить или добавить атрибуты alt и title для большого количества изображений. Рассмотрим пример функции, которая проставляет alt из названия файла, если он отсутствует.
function wpcat_update_missing_alt_text() {
$args = array(
'post_type' => 'attachment',
'post_mime_type' => 'image',
'posts_per_page' => -1,
'post_status' => 'inherit',
);
$query = new WP_Query($args);
if ( $query->have_posts() ) {
while ( $query->have_posts() ) {
$query->the_post();
$alt = get_post_meta(get_the_ID(), '_wp_attachment_image_alt', true);
if (empty($alt)) {
$filename = pathinfo(get_attached_file(get_the_ID()), PATHINFO_FILENAME);
update_post_meta(get_the_ID(), '_wp_attachment_image_alt', $filename);
}
}
wp_reset_postdata();
}
}
add_action('init', 'wpcat_update_missing_alt_text');Эта функция при инициализации сайта проверит все изображения и проставит alt на основе имени файла, если он отсутствует.
Автоматическое добавление title для изображений в редакторе
Можно добавить автоматическое заполнение поля title при загрузке изображения через фильтр:
function wpcat_set_image_title($metadata, $attachment_id) {
$post = get_post($attachment_id);
if (empty($post->post_title)) {
$file = get_attached_file($attachment_id);
$filename = pathinfo($file, PATHINFO_FILENAME);
wp_update_post(array(
'ID' => $attachment_id,
'post_title' => $filename
));
}
return $metadata;
}
add_filter('wp_generate_attachment_metadata', 'wpcat_set_image_title', 10, 2);Эта функция устанавливает название вложения равным имени файла, если поле пустое.
Оптимизация и очистка метаданных при загрузке с помощью хуков
Если нужен более тонкий контроль, можно использовать хук wp_handle_upload_prefilter для обработки файла перед загрузкой.
Пример удаления EXIF с помощью библиотеки PHP Imagick:
function wpcat_remove_exif_before_upload($file) {
if (strpos($file['type'], 'image') !== false) {
$image = new Imagick($file['tmp_name']);
$image->stripImage(); // удаляет все метаданные
$image->writeImage($file['tmp_name']);
$image->destroy();
}
return $file;
}
add_filter('wp_handle_upload_prefilter', 'wpcat_remove_exif_before_upload');Этот код очищает EXIF данные сразу перед загрузкой, что уменьшает размер файла и защищает конфиденциальность.
Дополнительные советы по работе с метаданными изображений
Регулярное обновление alt и title для SEO
Для улучшения SEO важно чтобы все изображения имели уникальные и релевантные alt и title. Можно использовать плагин Clearfy Pro, который помогает находить пустые alt и title и автоматически их заполнять.
Использование CDN и оптимизаторов с очисткой метаданных
Некоторые сервисы CDN и плагины оптимизации изображений, например, OmniVideo или WPStories, также могут автоматически оптимизировать и очищать метаданные изображений при загрузке или выводе.
Массовая обработка старых изображений
Для обработки уже загруженных изображений можно использовать плагин Regenerate Thumbnails вместе с описанными плагинами очистки. Кроме того, есть утилиты для пакетного изменения метаданных через WP-CLI, если у вас есть доступ к командной строке сервера.
Пример команды для обновления alt через WP-CLI:
wp media list --field=ID | xargs -n1 -I % wp post meta update % _wp_attachment_image_alt "Автоматический alt"Это обновит alt для всех медиа в библиотеке.