WordPress Version: 6.1
/**
* Updates a post meta field based on the given post ID.
*
* Use the `$prev_value` parameter to differentiate between meta fields with the
* same key and post ID.
*
* If the meta field for the post does not exist, it will be added and its ID returned.
*
* Can be used in place of add_post_meta().
*
* @since 1.5.0
*
* @param int $post_id Post ID.
* @param string $meta_key Metadata key.
* @param mixed $meta_value Metadata value. Must be serializable if non-scalar.
* @param mixed $prev_value Optional. Previous value to check before updating.
* If specified, only update existing metadata entries with
* this value. Otherwise, update all entries. Default empty.
* @return int|bool Meta ID if the key didn't exist, true on successful update,
* false on failure or if the value passed to the function
* is the same as the one that is already in the database.
*/
function update_post_meta($post_id, $meta_key, $meta_value, $prev_value = '')
{
// Make sure meta is updated for the post, not for a revision.
$the_post = wp_is_post_revision($post_id);
if ($the_post) {
$post_id = $the_post;
}
return update_metadata('post', $post_id, $meta_key, $meta_value, $prev_value);
}