private function update_meta($meta_key = '', $meta_value = '')
{
/* @var WPDB $wpdb */
global $wpdb;
if (empty($meta_key)) {
return false;
}
// Make sure if it needs to be serialized, we do
$meta_value = maybe_serialize($meta_value);
if (is_numeric($meta_value)) {
$value_type = is_float($meta_value) ? '%f' : '%d';
} else {
$value_type = "'%s'";
}
$sql = $wpdb->prepare("UPDATE {$wpdb->postmeta} SET meta_value = {$value_type} WHERE post_id = {$this->ID} AND meta_key = '%s'", $meta_value, $meta_key);
if ($wpdb->query($sql)) {
clean_post_cache($this->ID);
return true;
}
return false;
}