Описание функции update_metadata()
Функция update_metadata() обновляет метаданные для заданного объекта в базе данных. Она используется для изменения существующих метаданных или добавления новых, если они отсутствуют. Функция принимает тип объекта, его ID, ключ метаданных и значение, которое нужно сохранить.
Функция возвращает true при успешном обновлении и false в случае ошибки.
Параметры
$meta_type
Тип: string
Обязательный: Да
Описание: Тип объекта, к которому привязаны метаданные (например, ‘post’, ‘user’, ‘comment’)
Возможные значения:
0: post
1: user
2: comment
$object_id
Тип: int
Обязательный: Да
Описание: ID объекта, к которому относятся метаданные
Возможные значения:
$meta_key
Тип: string
Обязательный: Да
Описание: Ключ метаданных, который нужно обновить
Возможные значения:
$meta_value
Тип: mixed
Обязательный: Да
Описание: Новое значение метаданных
Возможные значения:
$prev_value
Тип: mixed
Обязательный: Нет
Описание: Предыдущее значение метаданных, если нужно обновить только если оно совпадает
Возможные значения:
Возвращаемое значение
Тип: bool
Описание: Возвращает true при успешном обновлении, false в случае ошибки
Возможные значения:
• true — если метаданные успешно обновлены
• false — если произошла ошибка или объект не найден
Примеры использования
Базовый пример обновления метаданных для поста с ID 1
$result = update_metadata('post', 1, 'custom_meta_key', 'New Value');
// $result будет true или false в зависимости от успеха
Метаданные с ключом ‘custom_meta_key’ будут обновлены на ‘New Value’
Обновление метаданных только если предыдущее значение совпадает
$result = update_metadata('post', 1, 'custom_meta_key', 'New Value', 'Old Value');
Метаданные обновятся, только если текущее значение ‘Old Value’
Проверка на успешное обновление метаданных
$result = update_metadata('post', 999, 'custom_meta_key', 'New Value');
if (!$result) {
echo 'Ошибка обновления метаданных';
}
Вывод сообщения об ошибке, если объект не найден
Обновление метаданных текущего поста в плагине
$post_id = get_the_ID();
update_metadata('post', $post_id, 'custom_meta_key', 'Updated Value');
Используется в контексте поста, который просматривается
Обновление метаданных пользователя с ID 1
$user_id = 1;
update_metadata('user', $user_id, 'bio', 'New bio information');
Изменение поля ‘bio’ для пользователя
Безопасность
Валидация входных данных: Параметры проходят валидацию по типам
Санитизация: Санитизация значений метаданных должна быть выполнена самостоятельно
Рекомендации: При использовании пользовательских данных применяйте функцию sanitize_text_field() для строк
— Связанные функции
Добавляет метаданные, если они не существуют
Удаляет метаданные
— Хуки
Фильтрует данные перед обновлением метаданных
— Примечания
– Ограничения
Не поддерживает массовое обновление метаданных
– Частые проблемы
- Ошибка при обновлении несуществующего объекта
- Необходимость предварительной проверки существования метаданных