WordPress как на ладони
wordpress jino

wp_get_attachment_metadata() WP 2.1.0

Получает метаданные прикрепленного файла.

Используется в: image_get_intermediate_size().
✈ 1 раз = 0.000745с = медленно | 50000 раз = 1.22с = быстро PHP 7.0.8, WP 4.6
Хуки из функции:
Возвращает

Массив метаданных указанного прикрепленного файла. Если данные получить не удалось, то будет возвращено false.

Использование

$meta = wp_get_attachment_metadata( $post_id, $unfiltered );
$post_id(число) (обязательный)
ID вложения, метаданные которого нужно получить.
По умолчанию: нет
$unfiltered(логический)
Если поменять на true, то будет отключена работа фильтров.
По умолчанию: false

Примеры

#1. Получим метаданные вложения 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] => 
			[ caption] => 
			[created_timestamp] => 0
			[copyright] => 
			[focal_length] => 0
			[iso] => 0
			[shutter_speed] => 0
			[title] => 
		)

)

Код wp get attachment metadata: wp-includes/post.php WP 4.9

<?php
function wp_get_attachment_metadata( $attachment_id = 0, $unfiltered = false ) {
	$attachment_id = (int) $attachment_id;
	if ( ! $post = get_post( $attachment_id ) ) {
		return false;
	}

	$data = get_post_meta( $post->ID, '_wp_attachment_metadata', true );

	if ( $unfiltered )
		return $data;

	/**
	 * Filters the attachment meta data.
	 *
	 * @since 2.1.0
	 *
	 * @param array|bool $data          Array of meta data for the given attachment, or false
	 *                                  if the object does not exist.
	 * @param int        $attachment_id Attachment post ID.
	 */
	return apply_filters( 'wp_get_attachment_metadata', $data, $post->ID );
}

Cвязанные функции

Из раздела: Метаданные (postmeta)

wp_get_attachment_metadata 8 комментариев
  • Otshelnik-Fm182 cайт: across-ocean.otshelnik-fm.ru

    Kama - подскажи пожалуйста как отключить это произвольное поле: _wp_attachment_metadata - я в бд убрал его sql запросом и не хочется чтобы при загрузке картинок оно создавалось (бд кстати почти в 2 раза уменьшилась - 19 мегабайт с возу).

    Мне не нужна медиабиблиотека в вордпрессе, я и так знаю где что лежит. Вот и хочу удалить это произвольное поле и чтоб оно не воссоздавалось.

    Ответить5.8 лет назад #
  • sergey666

    ответьте, очень прошу! какая функция отвечает за вывод ссылки прикрепленной миниатюры и вывод разрешения в пикселях!!??

    -1
    Ответить3.8 года назад #
  • Лариса @

    Добрый день! Спрошу здесь - не нашла подходящей темы. Можно как-то получить атрибут alt картинки для ее дальнейшего использования? Ну например, вывести его в качестве подписи к изображению и т.д.

    -2
    Ответить2.8 года назад #
    • campusboy1946 cайт: www.youtube.com/c/wpplus

      Лариса, обрисуйте более четко задачу. Где будет выводиться картинка? В цикле или нет? Нужно максимально больше инфы дать.

      1
      Ответить2.8 года назад #
      • Лариса @

        Пока ждала ответ, разобралась сама. Но возник теперь такой вопрос: как в цикле вложения получить и вывести описание картинки-вложения? А самой странице вложения сделать вот такой тайтл: тайтл картинки | тайтл страницы на которой размещен?

        2
        Ответить2.7 года назад #
  • Павел

    Добрый день!
    Подскажите пожалуйста, как получить продолжительность прикреплённого к посту аудиофайла в переменную?

    Ответить1.5 года назад #

Здравствуйте, !

Ваш комментарий