Ticket #11683: 11683.diff
File 11683.diff, 1.9 KB (added by , 12 years ago) |
---|
-
wp-includes/meta.php
132 132 } 133 133 } 134 134 135 if ( ! $meta_id = $wpdb->get_var( $wpdb->prepare( "SELECT $id_column FROM $table WHERE meta_key = %s AND $column = %d", $meta_key, $object_id ) ) ) 136 return add_metadata($meta_type, $object_id, $meta_key, $passed_value); 135 $_meta_ids = $wpdb->get_col( $wpdb->prepare( "SELECT $id_column FROM $table WHERE meta_key = %s AND $column = %d", $meta_key, $object_id ) ); 137 136 137 if ( empty( $_meta_ids ) ) 138 return add_metadata( $meta_type, $object_id, $meta_key, $passed_value ); 139 138 140 $_meta_value = $meta_value; 139 141 $meta_value = maybe_serialize( $meta_value ); 140 142 … … 146 148 $where['meta_value'] = $prev_value; 147 149 } 148 150 149 do_action( "update_{$meta_type}_meta", $meta_id, $object_id, $meta_key, $_meta_value ); 151 foreach ( $_meta_ids as $_meta_id ) 152 do_action( "update_{$meta_type}_meta", $_meta_id, $object_id, $meta_key, $_meta_value ); 150 153 151 if ( 'post' == $meta_type ) 152 do_action( 'update_postmeta', $meta_id, $object_id, $meta_key, $meta_value ); 154 if ( 'post' == $meta_type ) { 155 foreach ( $_meta_ids as $_meta_id ) 156 do_action( 'update_postmeta', $_meta_id, $object_id, $meta_key, $meta_value ); 157 } 153 158 154 159 $wpdb->update( $table, $data, $where ); 155 160 156 161 wp_cache_delete($object_id, $meta_type . '_meta'); 157 162 158 do_action( "updated_{$meta_type}_meta", $meta_id, $object_id, $meta_key, $_meta_value ); 163 foreach ( $_meta_ids as $_meta_id ) 164 do_action( "updated_{$meta_type}_meta", $_meta_id, $object_id, $meta_key, $_meta_value ); 159 165 160 if ( 'post' == $meta_type ) 161 do_action( 'updated_postmeta', $meta_id, $object_id, $meta_key, $meta_value ); 166 if ( 'post' == $meta_type ) { 167 foreach ( $_meta_ids as $_meta_id ) 168 do_action( 'updated_postmeta', $_meta_id, $object_id, $meta_key, $meta_value ); 169 } 162 170 163 171 return true; 164 172 }