WordPress 3.1 has made querying posts by postmeta values significantly simpler. With “meta_query” parameter, you can query for posts based on numerous postmeta values.
You have a custom post type called “product” that allows you to manage your T-shirt inventory. Upon saving each product, you enter custom field values for “price”, “size”, and “sex”. You want to create a page that only displays size “S” shirts for “men” that are under “$15.00″ and you want to order these posts by price, from lowest to highest.
In order to query for these products, you can use “meta_query”.
$args = array(
'post_type' => 'product',
'meta_query' => array(
array(
'key' => 'price',
'value' => '15.00',
'compare' => '<',
'type' => 'NUMERIC'
),
array(
'key' => 'size',
'value' => 'S',
'compare' => '=',
'type' => 'CHAR'
),
array(
'key' => 'sex',
'value' => 'men',
'compare' => '=',
'type' => 'NUMERIC'
)
),
'meta_key' => 'price',
'orderby' => 'meta_value',
'order' => 'ASC'
);
$query = new WP_Query( $args );
