wp_update_attachment_metadata() WP 2.1.0

Оновлює метадані вкладення (медіафайл).

Для кожного медіафайлу записуються метадані. Розташовані вони у таблиці wp_postmetaпід ключем _wp_attachment_metadataу вигляді серіалізованого масиву.

Оновлені дані – це масив даних про файл. Якщо вам потрібно оновити якийсь конкретний елемент масиву, спочатку отримаєте наявні дані за допомогою wp_get_attachment_metadata() , змініть отриманий масив і збережіть дані.

Працює на основі:
update_post_meta() ,
delete_post_meta()

Хуки з функції
wp_update_attachment_metadata($post_id, $data);
$post_id
(число) (обов’язковий)
ID медіафайлу (вкладення), метадані якого потрібно оновити.
$data
(масив) (обов’язковий)
Дані, які будуть записані замість наявних.

Приклади

0

#1 Оновимо підпис картинки

Давайте додамо свої дані до зображення з ID 656. Для цього спочатку отримаємо метадані, змінимо їх (додамо свої дані) і збережемо:

$attach_id = 656; // Отримуємо дані $data = wp_get_attachment_metadata( $attach_id ); // встановлюємо підпис $data['image_meta']['my_data'] = 'Цей рядок даних, який мені буде потрібний'; // оновлюємо дані if( wp_update_attachment_metadata( $attach_id, $data ) ) echo "Оновлено"; else echo "Не оновлено";

Тут при отриманні даних $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] => ) )

список змін

З версії 2.1.0Введено.

Код wp_update_attachment_metadata() WP 6.0.2

function wp_update_attachment_metadata( $attachment_id, $data ) { $attachment_id = (int) $attachment_id; $post = get_post($attachment_id); if (! $post) { return false; } /** * Filters updated attachment meta data. * * @ Since 2.1.0 * * @param array $data Array of updated attachment meta data. * @param int $attachment_id Attachment post 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' ); } }

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *