Changeset 18500
- Timestamp:
- 08/03/2011 04:48:37 PM (13 years ago)
- Location:
- trunk
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/wp-admin/includes/post.php
r18498 r18500 702 702 */ 703 703 function delete_meta( $mid ) { 704 global $wpdb; 705 $mid = (int) $mid; 706 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; 704 return delete_metadata_by_mid( 'post' , $mid ); 715 705 } 716 706 … … 743 733 */ 744 734 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; 735 return get_metadata_by_mid( 'post', $mid ); 754 736 } 755 737 … … 783 765 */ 784 766 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; 767 $meta_key = stripslashes( $meta_key ); 768 $meta_value = stripslashes_deep( $meta_value ); 769 770 return update_metadata_by_mid( 'post', $meta_id, $meta_value, $meta_key ); 806 771 } 807 772 -
trunk/wp-includes/meta.php
r18494 r18500 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 ); … … 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; … … 205 211 $_meta_value = $meta_value; 206 212 $meta_value = maybe_serialize( $meta_value ); 207 213 208 214 $query = $wpdb->prepare( "SELECT $id_column FROM $table WHERE meta_key = %s", $meta_key ); 209 215 … … 218 224 return false; 219 225 226 if ( $delete_all ) 227 $object_ids = $wpdb->get_col( $wpdb->prepare( "SELECT $type_column FROM $table WHERE meta_key = %s", $meta_key ) ); 228 220 229 do_action( "delete_{$meta_type}_meta", $meta_ids, $object_id, $meta_key, $_meta_value ); 230 231 if ( 'post' == $meta_type ) 232 do_action( 'delete_postmeta', $meta_ids ); 221 233 222 234 $query = "DELETE FROM $table WHERE $id_column IN( " . implode( ',', $meta_ids ) . " )"; … … 227 239 return false; 228 240 229 wp_cache_delete($object_id, $meta_type . '_meta'); 241 if ( $delete_all ) { 242 foreach ( (array) $object_ids as $o_id ) { 243 wp_cache_delete($o_id, $meta_type . '_meta'); 244 } 245 } else { 246 wp_cache_delete($object_id, $meta_type . '_meta'); 247 } 248 230 249 // users cache stores usermeta that must be cleared. 231 250 if ( 'user' == $meta_type ) … … 233 252 234 253 do_action( "deleted_{$meta_type}_meta", $meta_ids, $object_id, $meta_key, $_meta_value ); 254 255 if ( 'post' == $meta_type ) 256 do_action( 'deleted_postmeta', $meta_ids ); 235 257 236 258 return true; … … 382 404 383 405 do_action( "update_{$meta_type}_meta", $meta_id, $object_id, $meta_key, $_meta_value ); 406 407 if ( 'post' == $meta_type ) 408 do_action( 'update_postmeta', $meta_id, $object_id, $meta_key, $meta_value ); 384 409 385 410 // Run the update query, all fields in $data are %s, $where is a %d. … … 395 420 do_action( "updated_{$meta_type}_meta", $meta_id, $object_id, $meta_key, $_meta_value ); 396 421 422 if ( 'post' == $meta_type ) 423 do_action( 'updated_postmeta', $meta_id, $object_id, $meta_key, $meta_value ); 424 397 425 return $result; 398 426 } … … 437 465 do_action( "delete_{$meta_type}_meta", (array) $meta_id, $object_id, $meta->meta_key, $meta->meta_value ); 438 466 467 if ( 'post' == $meta_type ) 468 do_action( 'delete_postmeta', $object_id ); 469 439 470 // Run the query, will return true if deleted, false otherwise 440 471 $result = (bool) $wpdb->query( $wpdb->prepare( "DELETE FROM $table WHERE $id_column = %d LIMIT 1;", $meta_id ) ); … … 442 473 // Clear the caches. 443 474 wp_cache_delete($object_id, $meta_type . '_meta'); 444 475 445 476 // Users cache stores usermeta that must be cleared. 446 477 if ( 'user' == $meta_type ) … … 448 479 449 480 do_action( "deleted_{$meta_type}_meta", (array) $meta_id, $object_id, $meta->meta_key, $meta->meta_value ); 481 482 if ( 'post' == $meta_type ) 483 do_action( 'delete_postmeta', $object_id ); 450 484 451 485 return $result; -
trunk/wp-includes/post.php
r18472 r18500 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
Note: See TracChangeset
for help on using the changeset viewer.