多个复选框搜索wordpress

时间:2013-06-02 03:28:58

标签: wordpress forms search checkbox

我需要一个多重复选框搜索才能工作,我被卡住了。表单没问题,但我不知道如何进行查询。有人请帮帮我吗?

表格:

<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) : "" ) : "" );
    }
}

1 个答案:

答案 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

您可以这样检查。可能会有所帮助。感谢。