Make WordPress Core

Changeset 2907


Ignore:
Timestamp:
09/23/2005 11:22:51 PM (19 years ago)
Author:
ryan
Message:

Array and object support for post meta from skeltoac. fixes #1699

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-includes/functions.php

    r2887 r2907  
    403403
    404404function add_post_meta($post_id, $key, $value, $unique = false) {
    405     global $wpdb;
     405    global $wpdb, $post_meta_cache;
    406406   
    407407    if ($unique) {
     
    412412    }
    413413
     414    $original = $value;
     415    if ( is_array($value) || is_object($value) )
     416        $value = $wpdb->escape(serialize($value));
     417
    414418    $wpdb->query("INSERT INTO $wpdb->postmeta
    415419                                (post_id,meta_key,meta_value)
    416420                                VALUES ('$post_id','$key','$value')
    417421                        ");
    418    
     422
     423    $post_meta_cache['$post_id'][$key][] = $original;
     424
    419425    return true;
    420426}
    421427
    422428function delete_post_meta($post_id, $key, $value = '') {
    423     global $wpdb;
     429    global $wpdb, $post_meta_cache;
    424430
    425431    if (empty($value)) {
     
    436442        $wpdb->query("DELETE FROM $wpdb->postmeta WHERE post_id = '$post_id'
    437443AND meta_key = '$key'");
     444        unset($post_meta_cache['$post_id'][$key]);
    438445    } else {
    439446        $wpdb->query("DELETE FROM $wpdb->postmeta WHERE post_id = '$post_id'
    440447AND meta_key = '$key' AND meta_value = '$value'");
    441     }
     448        $cache_key = $post_meta_cache['$post_id'][$key];
     449        foreach ( $cache_key as $index => $data )
     450            if ( $data == $value )
     451                unset($post_meta_cache['$post_id'][$key][$index]);
     452    }
     453
     454    unset($post_meta_cache['$post_id'][$key]);
    442455       
    443456    return true;
     
    466479    if ($single) {
    467480        if (count($values)) {
    468             return $values[0];
     481            $return = $values[0];
    469482        } else {
    470483            return '';
    471484        }
    472485    } else {
    473         return $values;
    474     }
     486        $return = $values;
     487    }
     488
     489    @ $kellogs = unserialize($return);
     490    if ($kellogs !== FALSE)
     491        return $kellogs;
     492    else return $return;
    475493}
    476494
     
    478496    global $wpdb, $post_meta_cache;
    479497
    480         if(! $wpdb->get_var("SELECT meta_key FROM $wpdb->postmeta WHERE meta_key
     498    $original_value = $value;
     499    if ( is_array($value) || is_object($value) )
     500        $value = $wpdb->escape(serialize($value));
     501
     502    $original_prev = $prev_value;
     503    if ( is_array($prev_value) || is_object($prev_value) )
     504        $prev_value = serialize($value);
     505       
     506    if(! $wpdb->get_var("SELECT meta_key FROM $wpdb->postmeta WHERE meta_key
    481507= '$key' AND post_id = '$post_id'") ) {
    482             return false;
    483         }
     508        return false;
     509    }
    484510
    485511    if (empty($prev_value)) {
    486512        $wpdb->query("UPDATE $wpdb->postmeta SET meta_value = '$value' WHERE
    487513meta_key = '$key' AND post_id = '$post_id'");
     514        $cache_key = $post_meta_cache['$post_id'][$key];
     515        foreach ($cache_key as $index => $data)
     516            $post_meta_cache['$post_id'][$key][$index] = $original_value;
    488517    } else {
    489518        $wpdb->query("UPDATE $wpdb->postmeta SET meta_value = '$value' WHERE
    490519meta_key = '$key' AND post_id = '$post_id' AND meta_value = '$prev_value'");
     520        $cache_key = $post_meta_cache['$post_id'][$key];
     521        foreach ($cache_key as $index => $data)
     522            if ( $data == $original_prev )
     523                $post_meta_cache['$post_id'][$key][$index] = $original_value;
    491524    }
    492525
     
    843876    }
    844877    if($doping)
    845         echo '<iframe src="' .  get_settings('siteurl') .'/wp-admin/execute-pings.php?time=' . time() . '" style="border:none;width:1px;height:1px;"></iframe>';
     878        echo '<iframe id="pingcheck" src="' .  get_settings('siteurl') .'/wp-admin/execute-pings.php?time=' . time() . '" style="border:none;width:1px;height:1px;"></iframe>';
    846879}
    847880
     
    20482081
    20492082    $cur = $wpdb->get_row("SELECT * FROM $wpdb->usermeta WHERE user_id = '$user_id' AND meta_key = '$meta_key'");
    2050     if ( !$cur && !empty( $meta_value ) ) {
     2083    if ( !$cur ) {
    20512084        $wpdb->query("INSERT INTO $wpdb->usermeta ( user_id, meta_key, meta_value )
    20522085        VALUES
     
    20562089    if ( $cur->meta_value != $meta_value )
    20572090        $wpdb->query("UPDATE $wpdb->usermeta SET meta_value = '$meta_value' WHERE user_id = '$user_id' AND meta_key = '$meta_key'");
    2058     if ( empty( $meta_value ) )
    2059         $wpdb->query("DELETE FROM $wpdb->usermeta WHERE user_id = '$user_id' AND meta_key = '$meta_key'");
    20602091}
    20612092
Note: See TracChangeset for help on using the changeset viewer.