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!