Функция wp_read_image_metadata() в WordPress используется для извлечения метаданных изображения, включая информацию, полученную из EXIF и IPTC данных. Эти метаданные включают такие параметры, как диафрагма, камера, фокусное расстояние, скорость затвора, а также заголовок и описание изображения. Данная функция полезна для обработки загруженных изображений, автоматической генерации заголовков и мета-описаний на основе информации, хранящейся в файле.
wp_read_image_metadata( string $file ): array|false
Функция возвращает массив данных или false, если не удается прочитать метаданные. Это удобный способ автоматизации обработки изображений, так как она может автоматически подхватывать такие параметры, как модель камеры, дата создания изображения, ISO, фокусное расстояние и многое другое.
Параметры
- $file (строка, обязательный): Абсолютный путь до файла изображения, метаданные которого требуется получить.
Возвращаемые данные
Функция возвращает массив метаданных изображения на успехе или false в случае неудачи. Пример структуры возвращаемого массива:
$meta = array(
'aperture' => '', // Диафрагма (FNumber)
'credit' => '', // Автор или владелец
'camera' => '', // Модель камеры
'caption' => '', // Описание изображения
'created_timestamp' => '', // Дата создания
'copyright' => '', // Авторское право
'focal_length' => '', // Фокусное расстояние
'iso' => '', // ISO
'shutter_speed' => '', // Скорость затвора
'title' => '', // Заголовок изображения
'orientation' => '', // Ориентация изображения
'keywords' => array() // Ключевые слова
);
Пример 1: Извлечение метаданных из изображения
Этот пример демонстрирует, как извлечь метаданные из изображения и вывести их в читаемом виде.
// Необходимо подключить нужный файл для работы с изображениями
require_once ABSPATH . 'wp-admin/includes/image.php';
// Абсолютный путь до изображения
$image_path = $_SERVER['DOCUMENT_ROOT'] . '/wp-content/uploads/2023/10/example-image.jpg';
// Извлечение метаданных
$meta = wp_read_image_metadata($image_path);
// Проверка результата
if ($meta !== false) {
echo 'Модель камеры: ' . $meta['camera'] . '<br>';
echo 'Заголовок: ' . $meta['title'] . '<br>';
echo 'ISO: ' . $meta['iso'] . '<br>';
echo 'Фокусное расстояние: ' . $meta['focal_length'] . '<br>';
} else {
echo 'Не удалось извлечь метаданные.';
}
В результате выполнения кода вы получите информацию о камере, заголовке и других параметрах, если они присутствуют в метаданных изображения.
Пример 2: Получение метаданных и обработка ошибок
В этом примере дополнительно обрабатываются ошибки, которые могут возникнуть при попытке получить метаданные.
require_once ABSPATH . 'wp-admin/includes/image.php';
$image_path = '/var/www/site/wp-content/uploads/2024/01/photo.jpg';
// Попытка получения метаданных
$meta = wp_read_image_metadata($image_path);
// Если метаданные не найдены, выводим сообщение
if ($meta === false) {
echo 'Не удалось получить метаданные для файла ' . $image_path;
} else {
// Выводим информацию из метаданных
echo 'Камера: ' . $meta['camera'] . '<br>';
echo 'Описание: ' . $meta['caption'] . '<br>';
echo 'Дата создания: ' . date('Y-m-d H:i:s', $meta['created_timestamp']) . '<br>';
}
Пример 3: Автоматизация генерации описаний изображений
Этот пример показывает, как можно использовать метаданные для автоматического заполнения заголовка и описания изображения при его загрузке.
require_once ABSPATH . 'wp-admin/includes/image.php';
$image_path = '/path/to/uploaded/image.jpg';
// Получаем метаданные
$meta = wp_read_image_metadata($image_path);
if ($meta !== false) {
// Используем метаданные для создания описания
$title = $meta['title'] ? $meta['title'] : 'Без заголовка';
$caption = $meta['caption'] ? $meta['caption'] : 'Нет описания';
echo 'Заголовок изображения: ' . $title . '<br>';
echo 'Описание: ' . $caption;
} else {
echo 'Ошибка получения метаданных.';
}
Заключение
Функция wp_read_image_metadata() полезна для автоматического извлечения информации из изображений, особенно если требуется обработать фотографии, загруженные пользователями или внешними источниками. Она облегчает работу с медиафайлами, предоставляя доступ к важным данным, которые могут быть использованы для SEO, создания галерей или других задач.