update_post_meta() – Updates a post meta field based on the given post ID.

You appear to be a bot. Output may be restricted


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().


$int|bool = update_post_meta( $post_id, $meta_key, $meta_value, $prev_value );


( int ) required – Post ID.
( string ) required – Metadata key.
( mixed ) required – Metadata value. Must be serializable if non-scalar.
( mixed ) optional – Optional. Previous value to check before updating. If specified, only update existing metadata entries with this value. Otherwise, update all entries. Default empty.


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.


File name: wordpress/wp-includes/post.php

1 to 9 of 9
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 );

 View on GitHub View on Trac