Функция wp_update_attachment_metadata()
в WordPress предназначена для обновления метаданных вложения (медиафайла). Это позволяет разработчикам изменять информацию о вложении, такую как размеры изображений, заголовки, подписи и другие параметры.
wp_update_attachment_metadata( int $attachment_id, array $data ): int|false
Параметры:
$attachment_id
(int) — обязательный параметр, представляющий собой идентификатор поста вложения.$data
(array) — обязательный параметр, содержащий массив метаданных вложения.
Возвращаемое значение:
- int|false — Возвращает ID вложения, если метаданные были успешно обновлены, или
false
, если вложение недействительно.
Как это работает
Метаданные для каждого медиафайла хранятся в таблице wp_postmeta
под ключом _wp_attachment_metadata
в виде сериализованного массива. Чтобы обновить метаданные, необходимо сначала получить существующие данные с помощью функции wp_get_attachment_metadata()
, внести изменения и сохранить обновленный массив.
Пример 1: Обновление подписи изображения
В этом примере мы обновим метаданные изображения с ID 123. Сначала получим текущие метаданные, затем добавим новую подпись и сохраним данные.
$attachment_id = 123; // ID вашего вложения
// Получаем текущие метаданные
$metadata = wp_get_attachment_metadata( $attachment_id );
// Проверяем, успешно ли получены метаданные
if ( $metadata ) {
// Обновляем подпись изображения
$metadata['image_meta']['caption'] = 'Это новая подпись для изображения.';
// Сохраняем обновленные метаданные
if ( wp_update_attachment_metadata( $attachment_id, $metadata ) ) {
echo "Метаданные обновлены успешно.";
} else {
echo "Не удалось обновить метаданные.";
}
} else {
echo "Не удалось получить метаданные для вложения.";
}
Пример 2: Добавление пользовательских данных в метаданные
Вы можете добавлять свои данные в метаданные изображения. В этом примере мы добавим собственный ключ в массив метаданных.
$attachment_id = 456; // ID вашего вложения
// Получаем текущие метаданные
$metadata = wp_get_attachment_metadata( $attachment_id );
// Проверяем, успешно ли получены метаданные
if ( $metadata ) {
// Добавляем пользовательские данные
$metadata['custom_data'] = array(
'my_custom_key' => 'Значение пользовательского ключа',
'another_key' => 'Еще одно значение'
);
// Сохраняем обновленные метаданные
if ( wp_update_attachment_metadata( $attachment_id, $metadata ) ) {
echo "Пользовательские метаданные обновлены успешно.";
} else {
echo "Не удалось обновить пользовательские метаданные.";
}
} else {
echo "Не удалось получить метаданные для вложения.";
}
Пример 3: Удаление элемента из метаданных
Если вам нужно удалить какой-либо элемент из метаданных, вы можете сделать это следующим образом:
$attachment_id = 789; // ID вашего вложения
// Получаем текущие метаданные
$metadata = wp_get_attachment_metadata( $attachment_id );
// Проверяем, успешно ли получены метаданные
if ( $metadata ) {
// Удаляем не нужный элемент, например, caption
unset( $metadata['image_meta']['caption'] );
// Сохраняем обновленные метаданные
if ( wp_update_attachment_metadata( $attachment_id, $metadata ) ) {
echo "Элемент метаданных удален успешно.";
} else {
echo "Не удалось обновить метаданные.";
}
} else {
echo "Не удалось получить метаданные для вложения.";
}
Заключение
Функция wp_update_attachment_metadata()
предоставляет мощные возможности для работы с метаданными вложений в WordPress. С помощью этой функции вы можете обновлять, добавлять или удалять данные о медиафайлах, что позволяет улучшать функциональность вашего сайта и улучшать взаимодействие с пользователями.