update_post_meta()

Владислав Белецкий
Владислав Белецкий .
Категория:
Комментариев: 0

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

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

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

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 из базы данных.

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

// у нас не указан 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' );

Результат:

Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии