diff --git a/wp-includes/meta.php b/wp-includes/meta.php index d95ce47a22..9db1de30cc 100644 --- a/wp-includes/meta.php +++ b/wp-includes/meta.php @@ -123,9 +123,6 @@ function update_metadata($meta_type, $object_id, $meta_key, $meta_value, $prev_v if ( null !== $check ) return (bool) $check; - if ( ! $meta_id = $wpdb->get_var( $wpdb->prepare( "SELECT $id_column FROM $table WHERE meta_key = %s AND $column = %d", $meta_key, $object_id ) ) ) - return add_metadata($meta_type, $object_id, $meta_key, $passed_value); - // Compare existing value to new value if no prev value given and the key exists only once. if ( empty($prev_value) ) { $old_value = get_metadata($meta_type, $object_id, $meta_key); @@ -135,6 +132,9 @@ function update_metadata($meta_type, $object_id, $meta_key, $meta_value, $prev_v } } + if ( ! $meta_id = $wpdb->get_var( $wpdb->prepare( "SELECT $id_column FROM $table WHERE meta_key = %s AND $column = %d", $meta_key, $object_id ) ) ) + return add_metadata($meta_type, $object_id, $meta_key, $passed_value); + $_meta_value = $meta_value; $meta_value = maybe_serialize( $meta_value );