<?php/** * Get Meta * * Utility function used to consolidate the quering of multiple meta values * for the given object. * * @param int $id ID of the current object. * @param mixed $fields Array/string containing meta field(s) to retrieve from database. * @param string $type Type of metadata request. Options: post/term/user * @param constant $output pre-defined constant for return type (OBJECT/ARRAY_A) * * @return mixed MySQL object/Associative Array containing returned post metadata. */functionget_meta($id=null,$fields=array(),$type='post',$output=ARRAY_A){global$wpdb;$fields=esc_sql($fields);$values_arr=array();$values_obj=newstdClass();$dbtable=$wpdb->{$type.'meta'};$column_id=$type.'_id';$id=$id==null?get_the_ID():$id;$query="SELECT meta_key, meta_value FROM {$dbtable} WHERE {$column_id} = {$id}";if(!empty($fields)){if(is_array($fields)){$query.=" AND meta_key IN ('".implode("','",$fields)."')";}else{$query.=" AND meta_key = '{$fields}'";}}$results=$wpdb->get_results($query,OBJECT_K);foreach($resultsas$key=>$result){$values_arr[$key]=$result->meta_value;$values_obj->{$key}=$result->meta_value;}if(!is_array($fields)&&!empty($values_arr[$fields])){return$output==ARRAY_A?$values_arr[$fields]:$values_obj[$fields];}return$output==ARRAY_A?$values_arr:$values_obj;}
Comments (0)
HTTPSSSH
You can clone a snippet to your computer for local editing.
Learn more.