update_post_meta()

Обновляет значение мета-поля (произвольного поля) поста (записи, страницы или поста произвольного типа) с указанным ID.

Ах да, если мета-поле не существует, функция добавит его!

Функция возвращает:

  • true – если мета-поле с указанным ключом уже существовало и было обновлено.
  • ID мета-поля в таблице wp_postmeta, если его не существовало и оно было добавлено функцией.
  • false – если новое переданное значение соответствует уже существующему в БД и ничего не было обновлено.
update_post_meta( $post_id, $meta_key, $meta_value, $prev_value = '' )

Параметры

$post_id
(целое число) ID поста, мета-поле которого добавляем/обновляем.
$meta_key
(строка) Ключ мета-поля.
$meta_value
Новое значение произвольного поля. Можете спокойно передавать нескалярные значения (массивы, объекты), перед сохранением в базу данных они будут сериализованы автоматически.
 
Также функция подготавливает значение для безопасного SQL-запроса в базу данных. Но дополнительную очистку этого значения мы всё же делаем, например функцией sanitize_text_field(), если передаём ввод из текстового поля.
$prev_value
Дело в том, что даже для одного поста в базе данных может быть несколько мета-полей с одним и тем же ключом. Для того, чтобы функция знала, какое из них обновлять, мы можем указать старое значение поля, иначе функция обновит их все.

Примеры использования функции update_post_meta()

Для того, чтобы вам было удобно и наглядно, я вставлю сюда скриншот таблицы мета-полей wp_postmeta из базы данных.

таблица wp_postmeta в WordPress

А теперь поработаем с этими мета-полями:

// у нас не указан email для постов с ID 1 и 413, нужно добавить!
update_post_meta( 1, 'email', 'no-reply@misha.agency' );
update_post_meta( 413, 'email', 'no-reply@misha.agency' );
 
// изменим значение position для поста с ID 413
update_post_meta( 413, 'position', 'unnormal' );
 
// изменим значение position для поста с ID 1 и только то, что со значение normal
update_post_meta( 1, 'position', 'side', 'normal' );

Результат:

Пример использования функции update_post_meta()

Миша

Впервые познакомился с WordPress в 2009 году. Организатор и спикер на конференциях WordCamp. Преподаватель в школе Нетология.

Пишите, если нужна помощь с сайтом или разработка с нуля.

Чтобы оставить комментарий, пожалуйста, зарегистрируйтесь или войдите.