A WordPress-centric search engine for devs and theme authors

update_post_meta ›

update_post_meta ( $post_id, $meta_key, $meta_value, $prev_value = '' )
Parameters: (4)
  • (int) $post_id Post ID.
    Required: Yes
  • (string) $meta_key Metadata key.
    Required: Yes
  • (mixed) $meta_value Metadata value. Must be serializable if non-scalar.
    Required: Yes
  • (mixed) $prev_value Optional. Previous value to check before removing. Default empty.
    Required: No
    Default: (empty)
  • (int|bool) Meta ID if the key didn't exist, true on successful update, false on failure.
Defined at:

Update post meta field based on 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.


function update_post_meta( $post_id, $meta_key, $meta_value, $prev_value = '' ) {
	// Make sure meta is added to the post, not a revision.
	if ( $the_post = wp_is_post_revision( $post_id ) ) {
		$post_id = $the_post;

	$updated = update_metadata( 'post', $post_id, $meta_key, $meta_value, $prev_value );
	if ( $updated ) {
		wp_cache_set( 'last_changed', microtime(), 'posts' );
	return $updated;