Ticket #18196: 18196.patch
File 18196.patch, 4.7 KB (added by , 13 years ago) |
---|
-
wp-includes/post.php
1497 1497 * @return bool Whether the post meta key was deleted from the database 1498 1498 */ 1499 1499 function delete_post_meta_by_key($post_meta_key) { 1500 if ( !$post_meta_key ) 1501 return false; 1502 1503 global $wpdb; 1504 $post_ids = $wpdb->get_col($wpdb->prepare("SELECT DISTINCT post_id FROM $wpdb->postmeta WHERE meta_key = %s", $post_meta_key)); 1505 if ( $post_ids ) { 1506 $postmetaids = $wpdb->get_col( $wpdb->prepare( "SELECT meta_id FROM $wpdb->postmeta WHERE meta_key = %s", $post_meta_key ) ); 1507 $in = implode( ',', array_fill(1, count($postmetaids), '%d')); 1508 do_action( 'delete_postmeta', $postmetaids ); 1509 $wpdb->query( $wpdb->prepare("DELETE FROM $wpdb->postmeta WHERE meta_id IN($in)", $postmetaids )); 1510 do_action( 'deleted_postmeta', $postmetaids ); 1511 foreach ( $post_ids as $post_id ) 1512 wp_cache_delete($post_id, 'post_meta'); 1513 return true; 1514 } 1515 return false; 1500 return delete_metadata( 'post', null, $post_meta_key, '', true ); 1516 1501 } 1517 1502 1518 1503 /** -
wp-includes/meta.php
149 149 } 150 150 151 151 do_action( "update_{$meta_type}_meta", $meta_id, $object_id, $meta_key, $_meta_value ); 152 153 if ( 'post' == $meta_type ) 154 do_action( 'update_postmeta', $meta_id, $object_id, $meta_key, $meta_value ); 152 155 153 156 $wpdb->update( $table, $data, $where ); 154 157 … … 158 161 clean_user_cache($object_id); 159 162 160 163 do_action( "updated_{$meta_type}_meta", $meta_id, $object_id, $meta_key, $_meta_value ); 164 165 if ( 'post' == $meta_type ) 166 do_action( 'updated_postmeta', $meta_id, $object_id, $meta_key, $meta_value ); 161 167 162 168 return true; 163 169 } … … 218 224 return false; 219 225 220 226 do_action( "delete_{$meta_type}_meta", $meta_ids, $object_id, $meta_key, $_meta_value ); 221 227 228 if ( 'post' == $meta_type ) { 229 $first_meta_id = sizeof( $meta_ids ) > 0 ? $meta_ids[0] : null; 230 do_action( 'delete_postmeta', $delete_all ? $meta_ids : $first_meta_id ); 231 } 232 222 233 $query = "DELETE FROM $table WHERE $id_column IN( " . implode( ',', $meta_ids ) . " )"; 223 234 224 235 $count = $wpdb->query($query); 225 236 226 237 if ( !$count ) … … 232 243 clean_user_cache($object_id); 233 244 234 245 do_action( "deleted_{$meta_type}_meta", $meta_ids, $object_id, $meta_key, $_meta_value ); 246 247 if ( 'post' == $meta_type ) { 248 do_action( 'deleted_postmeta', $delete_all ? $meta_ids : $first_meta_id ); 249 } 235 250 236 251 return true; 237 252 } -
wp-admin/includes/post.php
701 701 * @return unknown 702 702 */ 703 703 function delete_meta( $mid ) { 704 global $wpdb; 705 $mid = (int) $mid; 704 $meta = get_metadata_by_mid( 'post', $mid ); 706 705 707 $post_id = $wpdb->get_var( $wpdb->prepare("SELECT post_id FROM $wpdb->postmeta WHERE meta_id = %d", $mid) ); 708 709 do_action( 'delete_postmeta', $mid ); 710 wp_cache_delete($post_id, 'post_meta'); 711 $rval = $wpdb->query( $wpdb->prepare("DELETE FROM $wpdb->postmeta WHERE meta_id = %d", $mid) ); 712 do_action( 'deleted_postmeta', $mid ); 713 714 return $rval; 706 return delete_metadata( 'post', $meta->post_id, $meta->meta_key, $meta->meta_value ); 715 707 } 716 708 717 709 /** … … 742 734 * @return unknown 743 735 */ 744 736 function get_post_meta_by_id( $mid ) { 745 global $wpdb; 746 $mid = (int) $mid; 747 748 $meta = $wpdb->get_row( $wpdb->prepare("SELECT * FROM $wpdb->postmeta WHERE meta_id = %d", $mid) ); 749 if ( empty($meta) ) 750 return false; 751 if ( is_serialized_string( $meta->meta_value ) ) 752 $meta->meta_value = maybe_unserialize( $meta->meta_value ); 753 return $meta; 737 return get_metadata_by_mid( 'post', $mid ); 754 738 } 755 739 756 740 /** … … 782 766 * @return unknown 783 767 */ 784 768 function update_meta( $meta_id, $meta_key, $meta_value ) { 785 global $wpdb; 786 787 $meta_key = stripslashes($meta_key); 788 789 if ( '' === trim( $meta_value ) ) 790 return false; 791 792 $post_id = $wpdb->get_var( $wpdb->prepare("SELECT post_id FROM $wpdb->postmeta WHERE meta_id = %d", $meta_id) ); 793 794 $meta_value = maybe_serialize( stripslashes_deep( $meta_value ) ); 795 $meta_id = (int) $meta_id; 796 797 $data = compact( 'meta_key', 'meta_value' ); 798 $where = compact( 'meta_id' ); 799 800 do_action( 'update_postmeta', $meta_id, $post_id, $meta_key, $meta_value ); 801 $rval = $wpdb->update( $wpdb->postmeta, $data, $where ); 802 wp_cache_delete($post_id, 'post_meta'); 803 do_action( 'updated_postmeta', $meta_id, $post_id, $meta_key, $meta_value ); 804 805 return $rval; 769 $meta = get_metadata_by_mid( 'post', $meta_id); 770 return update_metadata( 'post', $meta->post_id, $meta_key, $meta_value, $meta->meta_value ); 806 771 } 807 772 808 773 //