Wordpress - ORDER BY custom field value
You can create groups of meta_queries using specific compare operation on them, and since you want to order based in a single custom field, you can keep the order declaration dedicated to the single meta field. So:
$q = new WP_Query(
array(
'meta_key' => 'population', //setting the meta_key which will be used to order
'orderby' => 'meta_value', //if the meta_key (population) is numeric use meta_value_num instead
'order' => 'DESC', //setting order direction
'meta_query' => array(
'relation' => 'AND', //setting relation between queries group
array(
'relation' => 'OR', //setting relation between this inside query
array(
'key' => 'state',
'value' => 'Wisconsin',
),
array(
'key' => 'timezone',
'value' => 'central',
)
),
array(
'key' => 'city',
'compare' => 'EXISTS',
)
)
)
);