WP_GET_ATTACHMENT_METADATA() │ WP 2.1.0
Функция wp_get_attachment_metadata() позволяет получить метаданные для вложения по его ID.
Применение
Эта функция используется в других функциях:
wp_maybe_generate_attachment_metadata()wp_get_original_image_path()image_get_intermediate_size()
Скорость выполнения
- Выполнение 1 раз — 0.000745 секунды (медленно)
- Выполнение 50000 раз — 1.22 секунды (быстро)
- Версия PHP: 7.0.8, WordPress: 4.6
Хуки
Используется хук: wp_get_attachment_metadata
Возврат значения
Функция возвращает массив или false. Если произошла ошибк��, возвращает false.
Синтаксис
wp_get_attachment_metadata( $attachment_id, $unfiltered );
Параметры:
$attachment_id(int) — ID вложения. По умолчанию используется глобальная переменная$post.$unfiltered(bool) — Если true, фильтры не будут применяться. По умолчанию false.
Примеры использования
Пример 1: Получение метаданных вложения (изображение)
Получим метаданные для вложения с ID 656 (например, картинка):
$array = wp_get_attachment_metadata( 656 );
В результате переменная $array будет содержать примерно следующие данные (в зависимости от типа вложения):
Array
(
[width] => 356
[height] => 299
[file] => 2011/05/dinamic-archives.png
[sizes] => Array
(
[thumbnail] => Array
(
[file] => dinamic-archives-80x80.png
[width] => 80
[height] => 80
[mime-type] => image/png
)
[medium] => Array
(
[file] => dinamic-archives-120x100.png
[width] => 120
[height] => 100
[mime-type] => image/png
)
)
[image_meta] => Array
(
[aperture] => 0
[credit] =>
[camera] =>
=>
[created_timestamp] => 0
[copyright] =>
[focal_length] => 0
[iso] => 0
[shutter_speed] => 0
[title] =>
)
)
Чтобы вывести размеры изображения, можно использовать следующий код:
$meta = wp_get_attachment_metadata( 656 );
if ( $meta ) {
echo $meta['width'] .'x'. $meta['height']; //> 356x299
}
Пример 2: Получение метаданных вложения (видео)
Получим метаданные для вложения с ID 95 (например, видео):
$array = wp_get_attachment_metadata( 95 );
В результате переменная $array будет содержать примерно следующие данные:
Array
(
[filesize] => 61429114
[mime_type] => video/mp4
[length] => 1375
[length_formatted] => 22:55
[width] => 1280
[height] => 720
[fileformat] => mp4
[dataformat] => quicktime
=> Array
(
[dataformat] => mp4
[codec] => ISO/IEC 14496-3 AAC
[sample_rate] => 44100
[channels] => 2
[bits_per_sample] => 16
[lossless] =>
[channelmode] => stereo
)
[created_timestamp] => 1538981268
)
Пример 3: Получение полного URL загруженного файла изображения
Обратите внимание, что при вызове wp_get_attachment_metadata(), индекс file возвращает относительный путь к файлу вложения.
Если вы хотите получить полный URL для ссылки, вы можете использовать следующий код:
$attachment_metadata = wp_get_attachment_metadata( $attachment_id );
$upload_url = wp_upload_dir()['url'];
$file_rel_path = $attachment_metadata['sizes']['medium_large']['file'];
echo "{$upload_url}/{$file_rel_path}";
Изменения
- С версии 2.1.0 — функция была введена.
- С версии 6.0.0 — добавлено значение
$filesizeв возвращаемый массив.
Код функции WP_GET_ATTACHMENT_METADATA()
function wp_get_attachment_metadata( $attachment_id = 0, $unfiltered = false ) {
$attachment_id = (int) $attachment_id;
if ( ! $attachment_id ) {
$post = get_post();
if ( ! $post ) {
return false;
}
$attachment_id = $post->ID;
}
$data = get_post_meta( $attachment_id, '_wp_attachment_metadata', true );
if ( ! $data ) {
return false;
}
if ( $unfiltered ) {
return $data;
}
/**
* Фильтрует метаданные вложения.
*
* @since 2.1.0
*
* @param array $data Массив метаданных для данного вложения.
* @param int $attachment_id ID поста вложения.
*/
return apply_filters( 'wp_get_attachment_metadata', $data, $attachment_id );
}
Связанные функции
delete_post_meta_by_key()wp_generate_attachment_metadata()wp_maybe_generate_attachment_metadata()wp_read_audio_metadata()wp_update_attachment_metadata()