Changeset 7978

Show
Ignore:
Timestamp:
05/22/08 00:01:00 (6 months ago)
Author:
ryan
Message:

Add non-existent values instead of returning g false in update_post_meta(). Props filosofo. fixes #7018

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/wp-admin/includes/post.php

    r7907 r7978  
    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 
  • trunk/wp-includes/post.php

    r7925 r7978  
    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' );