我需要一个多重复选框搜索才能工作,我被卡住了。表单没问题,但我不知道如何进行查询。有人请帮帮我吗?
表格:
<input id="propertytype" class="noborder" type="checkbox" name="propertytype2[]" value="Loft"><div class="lbl">Loft</div>
<input id="propertytype" class="noborder" type="checkbox" name="propertytype2[]" value="Studio"><div class="lbl">Studio</div>
<input id="propertytype" class="noborder" type="checkbox" name="propertytype2[]" value="2 pieces"><div class="lbl">2 pièces</div>
<input id="propertytype" class="noborder" type="checkbox" name="propertytype2[]" value="3 pieces"><div class="lbl">3 pièces</div>
<input id="propertytype" class="noborder" type="checkbox" name="propertytype2[]" value="4 pieces"><div class="lbl">4 pièces</div>
<input id="propertytype" class="noborder" type="checkbox" name="propertytype2[]" value="5 pieces"><div class="lbl">5 pièces</div>
<input id="propertytype" class="noborder" type="checkbox" name="propertytype2[]" value="6 pieces et +"><div class="lbl">6 pièces et +</div>
<input id="propertytype" class="noborder" type="checkbox" name="propertytype2[]" value="Proprietes, Hotels particuliers"><div class="lbl">Propriétés, Hôtels particuliers</div>
查询:
$search_propertytype = "";
if (isset($_POST['propertytype2'])) {
$search_propertytype = trim($_POST['propertytype2']);
}
if (get_option('wp_search_propertytype') == "Yes") {
if($search_propertytype != '')
{
$search_propertytype = trim($search_propertytype);
$query ="SELECT p.* FROM $wpdb->posts p, $wpdb->postmeta p1 WHERE p.ID = p1.post_id AND (p1.meta_key='propertytype_value' AND p1.meta_value='$search_propertytype' OR p1.meta_key='propertytype2_value' AND p1.meta_value='$search_propertytype')";
$sptt = getIds( $query );
$_ids = ( !empty($sptt) ? ( !empty($_ids) ? array_intersect( $_ids, $sptt) : "" ) : "" );
}
}
答案 0 :(得分:0)
我通过WP_Query
和自定义元框制作了解决方案。我的查询参数如下:
$args = array(
'post_type' => 'product',
'meta_query' => array(
'relation' => 'OR',
array(
'key' => 'color',
'value' => 'blue',
'compare' => 'NOT LIKE'
),
array(
'key' => 'price',
'value' => array( 20, 100 ),
'type' => 'numeric',
'compare' => 'BETWEEN'
)
)
);
$query = new WP_Query( $args );
检查wordpress官方文档:http://codex.wordpress.org/Class_Reference/WP_Query#Custom_Field_Parameters
您可以这样检查。可能会有所帮助。感谢。