Make WordPress Core

Ticket #18196: 18196.diff

File 18196.diff, 5.8 KB (added by ryan, 13 years ago)

Retain stripslashes in update_meta()

  • wp-includes/post.php

     
    14971497 * @return bool Whether the post meta key was deleted from the database
    14981498 */
    14991499function 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 );
    15161501}
    15171502
    15181503/**
  • wp-includes/meta.php

     
    149149        }
    150150
    151151        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 );   
    152155
    153156        $wpdb->update( $table, $data, $where );
    154157
     
    158161                clean_user_cache($object_id);
    159162
    160163        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 );         
    161167
    162168        return true;
    163169}
     
    218224                return false;
    219225
    220226        do_action( "delete_{$meta_type}_meta", $meta_ids, $object_id, $meta_key, $_meta_value );
    221 
     227       
     228        if ( 'post' == $meta_type )
     229                do_action( 'delete_postmeta', $meta_ids );
     230       
    222231        $query = "DELETE FROM $table WHERE $id_column IN( " . implode( ',', $meta_ids ) . " )";
    223 
     232       
    224233        $count = $wpdb->query($query);
    225234
    226235        if ( !$count )
     
    232241                clean_user_cache($object_id);
    233242
    234243        do_action( "deleted_{$meta_type}_meta", $meta_ids, $object_id, $meta_key, $_meta_value );
     244       
     245        if ( 'post' == $meta_type )
     246                do_action( 'deleted_postmeta', $meta_ids );
    235247
    236248        return true;
    237249}
     
    381393                $where[$id_column] = $meta_id;
    382394
    383395                do_action( "update_{$meta_type}_meta", $meta_id, $object_id, $meta_key, $_meta_value );
     396
     397                if ( 'post' == $meta_type )
     398                        do_action( 'update_postmeta', $meta_id, $object_id, $meta_key, $meta_value );
    384399               
    385400                // Run the update query, all fields in $data are %s, $where is a %d.
    386401                $result = (bool) $wpdb->update( $table, $data, $where, '%s', '%d' );
     
    394409
    395410                do_action( "updated_{$meta_type}_meta", $meta_id, $object_id, $meta_key, $_meta_value );
    396411
     412                if ( 'post' == $meta_type )
     413                        do_action( 'updated_postmeta', $meta_id, $object_id, $meta_key, $meta_value );
     414
    397415                return $result;
    398416        }
    399417       
     
    436454
    437455                do_action( "delete_{$meta_type}_meta", (array) $meta_id, $object_id, $meta->meta_key, $meta->meta_value );
    438456
     457                if ( 'post' == $meta_type )
     458                        do_action( 'delete_postmeta', $object_id );
     459
    439460                // Run the query, will return true if deleted, false otherwise
    440461                $result = (bool) $wpdb->query( $wpdb->prepare( "DELETE FROM $table WHERE $id_column = %d LIMIT 1;", $meta_id ) );
    441462
     
    448469
    449470                do_action( "deleted_{$meta_type}_meta", (array) $meta_id, $object_id, $meta->meta_key, $meta->meta_value );
    450471
     472                if ( 'post' == $meta_type )
     473                        do_action( 'delete_postmeta', $object_id );
     474
    451475                return $result;
    452476
    453477        }
  • wp-admin/includes/post.php

     
    701701 * @return unknown
    702702 */
    703703function 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 );
    715705}
    716706
    717707/**
     
    742732 * @return unknown
    743733 */
    744734function 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 );
    754736}
    755737
    756738/**
     
    782764 * @return unknown
    783765 */
    784766function update_meta( $meta_id, $meta_key, $meta_value ) {
    785         global $wpdb;
     767        $meta_key = stripslashes( $meta_key );
     768        $meta_value = stripslashes_deep( $meta_value );
    786769
    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;
     770        return update_metadata_by_mid( 'post', $meta_id, $meta_value, $meta_key );
    806771}
    807772
    808773//