If you want to get a post with meta key show_on_homepage and meta value on, you can do it in the following way:
$rd_args = array(
'meta_key' => 'show_on_homepage',
'meta_value' => 'on'
);
$rd_query = new WP_Query($rd_args);
If you need to query all posts except the ones with this pair of meta key and value, you can use the following parameters:
$rd_args = array(
'meta_key' => 'show_on_homepage',
'meta_value' => 'on',
'meta_compare' => '!='
);
$rd_query = new WP_Query( $rd_args );
Get Posts with a Specific Custom Field Value
// the meta_key 'color' with the meta_value 'white'
$rd_args = array(
'meta_query' => array(
array(
'key' => 'color',
'value' => 'white'
)
)
);
$rd_query = new WP_Query( $rd_args );
Get all the posts except the ones with meta key «color» and meta value «white»:
$rd_args = array(
'meta_query' => array(
array(
'key' => 'color',
'value' => 'white',
'compare' => '!='
)
)
);
$rd_query = new WP_Query( $rd_args );
Get all the posts with white OR green color custom field value:
// custom field name is color and custom field value is 'white' OR 'green'
$rd_args = array(
'meta_query' => array(
array(
'key' => 'color',
'value' => array('white','green'),
'compare' => 'IN'
)
)
);
$rd_query = new WP_Query( $rd_args );
Get all the posts (products in online shop for example) except white products and green products:
$rd_args = array(
'meta_query' => array(
array(
'key' => 'color',
'value' => array('white','green'),
'compare' => 'NOT IN'
)
)
);
$rd_query = new WP_Query( $rd_args );
Get Posts Within a Given Range of Numeric Meta Values
// the product price is more than 2000 and less than 4000
$rd_args = array(
'meta_query' => array(
array(
'key' => 'price',
'value' => array( 2000, 4000 ),
'type' => 'numeric',
'compare' => 'BETWEEN'
)
)
);
$rd_query = new WP_Query( $rd_args );
Numeric Comparison
$rd_args = array(
'meta_query' => array(
array(
'key' => 'price',
'value' => 2000,
'type' => 'numeric',
'compare' => '>='
)
)
);
The product price is less than 4000:
$rd_args = array(
'meta_query' => array(
array(
'key' => 'price',
'value' => 4000,
'type' => 'numeric',
'compare' => '<'
)
)
);
$rd_query = new WP_Query( $rd_args );
Query Posts by Several (two or more) Custom Field Values
$rd_args = array(
'meta_query' => array(
'relation' => 'AND',
array(
'key' => 'color',
'value' => 'white'
),
array(
'key' => 'price',
'value' => array( 2000, 4000 ),
'type' => 'numeric',
'compare' => 'BETWEEN'
)
)
);
$rd_query = new WP_Query( $rd_args );