Функция wp_get_attachment_metadata()
в WordPress используется для получения метаданных медиафайлов (вложений) по их идентификатору. Это позволяет разработчикам извлекать важную информацию о файлах, такую как размер, тип, путь и другие специфические параметры, связанные с медиафайлом.
wp_get_attachment_metadata( int $attachment_id, bool $unfiltered = false ): array|false
Параметры:
$attachment_id
(int, обязательный) — ID вложения, для которого требуется получить метаданные. По умолчанию используется глобальный объект$post
.$unfiltered
(bool, необязательный) — еслиtrue
, фильтры не будут применены. По умолчанию установлено значениеfalse
.
Возвращаемое значение:
- array|false — массив с метаданными вложения. Если данные не удалось получить, будет возвращено значение
false
.
Структура возвращаемых метаданных
Метаданные, возвращаемые этой функцией, могут включать в себя следующие элементы:
- width (int) — ширина вложения.
- height (int) — высота вложения.
- file (string) — путь к файлу относительно
wp-content/uploads
. - sizes (array) — массив размеров, где ключами являются слаги размеров, а значениями — массивы с ‘file’, ‘width’, ‘height’ и ‘mime-type’.
- image_meta (array) — метаданные изображения, если это применимо.
- filesize (int) — размер файла вложения.
Пример 1: Получение метаданных изображения
В этом примере мы получим метаданные для изображения с определенным ID. Предполагаем, что изображение с ID 789 уже загружено в медиатеку.
// Получаем метаданные для изображения с ID 789
$attachment_id = 789; // Замените на нужный ID
$metadata = wp_get_attachment_metadata( $attachment_id );
if ( $metadata ) {
echo 'Ширина: ' . $metadata['width'] . ' пикселей, Высота: ' . $metadata['height'] . ' пикселей';
} else {
echo 'Метаданные не найдены.';
}
Пример 2: Получение метаданных видео
Этот пример показывает, как получить метаданные для видеофайла. Предположим, у нас есть видео с ID 123.
// Получаем метаданные для видео с ID 123
$attachment_id = 123; // Замените на нужный ID
$video_metadata = wp_get_attachment_metadata( $attachment_id );
if ( $video_metadata ) {
echo 'Размер файла: ' . $video_metadata['filesize'] . ' байт, Длительность: ' . $video_metadata['length_formatted'];
} else {
echo 'Метаданные для видео не найдены.';
}
Пример 3: Извлечение информации о размерах изображений
В этом примере мы покажем, как получить информацию о различных размерах изображений, доступных для конкретного вложения.
// Получаем метаданные для изображения
$attachment_id = 456; // Замените на нужный ID
$image_metadata = wp_get_attachment_metadata( $attachment_id );
if ( $image_metadata ) {
echo 'Доступные размеры:' . PHP_EOL;
foreach ( $image_metadata['sizes'] as $size => $data ) {
echo ucfirst($size) . ': ' . $data['width'] . 'x' . $data['height'] . ', MIME-тип: ' . $data['mime-type'] . PHP_EOL;
}
} else {
echo 'Метаданные изображения не найдены.';
}
Пример 4: Получение метаданных без фильтров
В этом примере мы получим метаданные, отключив фильтры. Это может быть полезно в определенных ситуациях, когда вам нужно получить «чистые» данные.
// Получаем метаданные с отключенными фильтрами
$attachment_id = 999; // Замените на нужный ID
$metadata_unfiltered = wp_get_attachment_metadata( $attachment_id, true );
if ( $metadata_unfiltered ) {
echo 'Метаданные (без фильтров): ' . print_r($metadata_unfiltered, true);
} else {
echo 'Не удалось получить метаданные.';
}
Заключение
Функция wp_get_attachment_metadata()
является важным инструментом для разработчиков, позволяющим извлекать и использовать метаданные медиафайлов в WordPress. С её помощью можно легко получать информацию о размерах, типах и других характеристиках файлов, что помогает в управлении контентом и улучшает пользовательский опыт на сайте.