Make WordPress Core

Ticket #7018: update_post_meta.diff

File update_post_meta.diff, 2.1 KB (added by filosofo, 18 years ago)
  • wp-includes/post.php

     
    577577        // expected_slashed ($meta_key)
    578578        $meta_key = stripslashes($meta_key);
    579579
    580         if ( ! $wpdb->get_var( $wpdb->prepare( "SELECT meta_key FROM $wpdb->postmeta WHERE meta_key = %s AND post_id = %d", $meta_key, $post_id ) ) )
    581                 return false;
     580        if ( ! $wpdb->get_var( $wpdb->prepare( "SELECT meta_key FROM $wpdb->postmeta WHERE meta_key = %s AND post_id = %d", $meta_key, $post_id ) ) ) {
     581                return add_post_meta($post_id, $meta_key, $meta_value);
     582        }
    582583
    583584        $data  = compact( 'meta_value' );
    584585        $where = compact( 'meta_key', 'post_id' );
  • wp-admin/includes/post.php

     
    389389
    390390}
    391391
    392 function update_meta( $mid, $mkey, $mvalue ) {
     392function update_meta( $meta_id, $meta_key, $meta_value ) {
    393393        global $wpdb;
    394394
    395395        $protected = array( '_wp_attached_file', '_wp_attachment_metadata', '_wp_old_slug', '_wp_page_template' );
    396396
    397         if ( in_array($mkey, $protected) )
     397        if ( in_array($meta_key, $protected) )
    398398                return false;
    399399
    400         $post_id = $wpdb->get_var( $wpdb->prepare("SELECT post_id FROM $wpdb->postmeta WHERE meta_id = %d", $mid) );
     400        $post_id = $wpdb->get_var( $wpdb->prepare("SELECT post_id FROM $wpdb->postmeta WHERE meta_id = %d", $meta_id) );
    401401        wp_cache_delete($post_id, 'post_meta');
    402402
    403         $mvalue = maybe_serialize( stripslashes( $mvalue ));
    404         $mvalue = $wpdb->escape( $mvalue );
    405         $mid = (int) $mid;
    406         return $wpdb->query( $wpdb->prepare("UPDATE $wpdb->postmeta SET meta_key = %s, meta_value = %s WHERE meta_id = %d", $mkey, $mvalue, $mid) );
     403        $meta_value = maybe_serialize( stripslashes( $meta_value ));
     404        $meta_value = $wpdb->escape( $meta_value );
     405        $meta_id = (int) $meta_id;
     406       
     407        $data  = compact( 'meta_key', 'meta_value' );
     408        $where = compact( 'meta_id' );
     409
     410        return $wpdb->update( $wpdb->postmeta, $data, $where );
    407411}
    408412
    409413//