Как использовать функцию wp_update_attachment_metadata() в WordPress: руководство.

WP_UPDATE_ATTACHMENT_METADATA() │ WP 2.1.0

Функция wp_update_attachment_metadata() используется для обновления метаданных вложения в WordPress. Давайте разберёмся, как она работает и как её использовать.

Применение

Эта функция позволяет обновить метаданные вложения, такие как изображение или документ. Для этого используются две другие функции:

  • update_post_meta()
  • delete_post_meta()

Hook'и функции

  • wp_update_attachment_metadata — это хук, который позволяет изменить данные перед их обновлением.

Возвращаемое значение

Функция возвращает целое число (ID обновлённого вложения) или false, если передан неправильный ID вложения.

Как использовать

wp_update_attachment_metadata( $attachment_id, $data );

Параметры

  • $attachment_id (int) (обязательный) — ID поста вложения.
  • $data (array) (обязательный) — массив с метаданными вложения.

Пример использования

Обновление подписи изображения

Допустим, мы хотим добавить свои данные к изображению с ID 656. Сначала получим метаданные, изменим их и сохраним:

$attach_id = 656;
$data = wp_get_attachment_metadata( $attach_id );

// Установим свои данные
$data['image_meta']['my_data'] = 'Эти данные мне нужны';

// Обновим данные
$up = wp_update_attachment_metadata( $attach_id, $data );

echo $up ? 'Обновлено' : 'Не обновлено';

В массиве $data были следующие значения во время обновления:

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] => 
            [my_data] => Эти данные мне нужны
        )
)

Изменения

  • С версии 2.1.0 — функция была введена в WordPress и продолжает использоваться для управления метаданными вложений.

Исходный код функции

Вот как выглядит функция wp_update_attachment_metadata:


function wp_update_attachment_metadata( $attachment_id, $data ) {
$attachment_id = (int) $attachment_id;

$post = get_post( $attachment_id );

if ( ! $post ) {
    return false;
}

/**
 * Фильтрует обновленные метаданные вложения.
 *
 * @since 2.1.0
 *
 * @param array $data          Массив обновленных метаданных вложения.
 * @param int   $attachment_id ID поста вложения.
 */
$data = apply_filters( 'wp_update_attachment_metadata', $data, $post->ID );
if ( $data ) {
    return update_post_meta( $post->ID, '_wp_attachment_metadata', $data );
} else {
    return delete_post_meta( $post->ID, '_wp_attachment_metadata' );
}

}

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

Если хотите углубиться в работу с метаданными вложений, полезно знать о следующих функциях:

  • delete_post_meta_by_key()
  • wp_generate_attachment_metadata()
  • wp_get_attachment_metadata()
  • wp_maybe_generate_attachment_metadata()
  • wp_read_audio_metadata()

Теперь у вас есть всё, чтобы начать использовать wp_update_attachment_metadata() для управления метаданными вложений в WordPress!

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *