WP_READ_IMAGE_METADATA() │ WP 2.5.0
Функция wp_read_image_metadata() позволяет получать расширенные метаданные изображений, такие как EXIF или IPTC, если они доступны.
Описание
Эта функция извлекает следующие метаданные EXIF:
- aperture (диафрагма)
- credit (автор)
- camera (камера)
- caption (подпись)
- copyright (авторские права)
- iso (чувствительность)
- created_timestamp (время создания)
- focal_length (фокусное расстояние)
- shutter_speed (скорость затвора)
- title (название)
Что касается метаданных IPTC, извлекаются:
- APP13
- credit
- byline (авторская строка)
- created date and time (дата и время создания)
- caption
- copyright
- title
Использование
$file = 'путь/к/вашему/изображению.jpg';
$meta = wp_read_image_metadata( $file );
Примечание
- $file (строка) — путь к изображению. Этот параметр обязателен.
Примеры
Пример извлечения метаданных изображения
require_once ABSPATH . 'wp-admin/includes/image.php'; // для подключения функций работы с изображениями
$image_path = $_SERVER['DOCUMENT_ROOT'] . '/wp-content/uploads/2019/03/Screenshot_5.jpg';
$meta = wp_read_image_metadata( $image_path );
// Вывод массива метаданных
/*
$meta = array(
'aperture' => 0,
'credit' => '',
'camera' => '',
'caption' => 'Краткое описание изображения',
'created_timestamp' => 0,
'copyright' => '',
'focal_length' => 0,
'iso' => 0,
'shutter_speed' => 0,
'title' => 'Название изображения',
'orientation' => 1,
'keywords' => array()
);
*/
Если вы получите ошибку при вызове этой функции, например:
PHP Fatal error: Uncaught Error: Call to undefined function wp_read_image_metadata()
Убедитесь, что файл wp-admin/includes/image.php включен, как показано выше.
Возвращаемое значение
Функция возвращает массив с метаданными изображения при успешном выполнении или false в случае ошибки.
Изменения
- Введена в версии 2.5.0.
Хуки
Функция содержит хуки, которые позволяют изменять поведение при извлечение метаданных:
wp_read_image_metadata_typeswp_read_image_metadata
Код функции
function wp_read_image_metadata( $file ) {
if ( ! file_exists( $file ) ) {
return false;
}
list( , , $image_type ) = wp_getimagesize( $file );
$meta = array(
'aperture' => 0,
'credit' => '',
'camera' => '',
'caption' => '',
'created_timestamp' => 0,
'copyright' => '',
'focal_length' => 0,
'iso' => 0,
'shutter_speed' => 0,
'title' => '',
'orientation' => 0,
'keywords' => array(),
);
// Чтение IPTC метаданных
if ( is_callable( 'iptcparse' ) ) {
$info = array();
wp_getimagesize( $file, $info );
if ( ! empty( $info['APP13'] ) ) {
$iptc = @iptcparse( $info['APP13'] );
// Если IPTC данные не считываются, возвращаем пустой массив
if ( ! is_array( $iptc ) ) {
$iptc = array();
}
// Извлечение данных IPTC
if ( ! empty( $iptc['2#105'][0] ) ) {
$meta['title'] = trim( $iptc['2#105'][0] );
} elseif ( ! empty( $iptc['2#005'][0] ) ) {
$meta['title'] = trim( $iptc['2#005'][0] );
}
// Описание
if ( ! empty( $iptc['2#120'][0] ) ) {
$meta['caption'] = trim( $iptc['2#120'][0] );
}
// Автор
if ( ! empty( $iptc['2#110'][0] ) ) {
$meta['credit'] = trim( $iptc['2#110'][0] );
}
// Дата и время создания
if ( ! empty( $iptc['2#055'][0] ) && ! empty( $iptc['2#060'][0] ) ) {
$meta['created_timestamp'] = strtotime( $iptc['2#055'][0] . ' ' . $iptc['2#060'][0] );
}
// Авторские права
if ( ! empty( $iptc['2#116'][0] ) ) {
$meta['copyright'] = trim( $iptc['2#116'][0] );
}
// Ключевые слова
if ( ! empty( $iptc['2#025'][0] ) ) {
$meta['keywords'] = array_values( $iptc['2#025'] );
}
}
}
// Чтение EXIF метаданных
$exif_image_types = apply_filters( 'wp_read_image_metadata_types', array( IMAGETYPE_JPEG, IMAGETYPE_TIFF_II, IMAGETYPE_TIFF_MM ) );
if ( is_callable( 'exif_read_data' ) && in_array( $image_type, $exif_image_types, true ) ) {
$exif = @exif_read_data( $file );
if ( ! is_array( $exif ) ) {
$exif = array();
}
// Извлечение данных EXIF
if ( ! empty( $exif['ImageDescription'] ) ) {
$meta['caption'] = trim( $exif['ImageDescription'] );
}
// Остальные поля можно добавлять аналогично
}
return apply_filters( 'wp_read_image_metadata', $meta, $file, $image_type, $iptc, $exif );
}
Заключение
Функция wp_read_image_metadata() является полезным инструментом для извлечения и обработки метаданных изображений в WordPress. Понимание ее работы поможет улучшить управление медиа-контентом на вашем сайте.