Функция 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, создания галерей или других задач.