I am using my custom filter. So in this search there are many checkboxes (have city name) and user selected some of them the post show the search result base on the checkbox.
First i sotre the city/state name by using the add_post_meta
add_post_meta($post_id, 'post_state' , $state, true);
So after that when user filter the post. i am using the code
if ( 'POST' == $_SERVER['REQUEST_METHOD'] && !empty( $_POST['action'] ) && $_POST['action'] == 'sortbydestination' ) :
$stateName = $_POST['stateName'];
unset($_POST);
endif;
$args = array(
'posts_per_page' => 30,
'paged' => $paged,
'post_type' => 'post',
'post_status' => 'publish',
'meta_query' => array(
'key' => 'post_state',
'value' => array($stateName)
)
);
The checkbox html is generated by jquery which is
jQuery('#state_div').append('<label><input type="checkbox" name="stateName['+ state_arr[x] +']" id="" value="'+ state_arr[x] +'" >' + state_arr[x] + '</label');
So the name of the input
is a array
it self, which give me values like this
stateName[cityname1];
stateName[cityname2];
stateName[cityname3];
stateName[cityname4];
and so on. So someone tell me wether i am using right way to get these data or make correct query
or not. Thanks
=
, yet you feed the metaquery an array as a value. That cannot work. Simply pass$stateName
as a value.'compare' => '='
but it not working. It show me all the posts. so what can i do now