如何使用两个自定义元键

时间:2015-05-16 12:56:42

标签: php wordpress custom-post-type

我正在开发真正的州财产网站。我有CPT“soto_property”。我还有两个自定义字段用于此CPT,名为“price”和“dorm_room”。我有一个搜索表单,访问者可以使用不同的价格和dorm_room过滤属性。

所以我想要的是,如果访客搜索2 dorm_room,它应该显示所有2 dorm_room 1ST价格从高到低,然后3 dorm_room从高到低价格和那4个宿舍从高到低价格

我已经按照下面显示的许多链接但没有运气 -

http://www.billerickson.net/code/order-results-multiple-meta_keys/ https://gist.github.com/lolitaloco/5441726

这是我的代码 -

$properties = array(
    'post_type' => 'soto_property',
    'paged'=>$paged,
    'posts_per_page' => 6,
    'order'     => 'DESC',
   'orderby'    => 'meta_value_num',
    'meta_key'  => 'price'

);

/*check Price range */
if (!empty($_GET['price_range'])) {
    $lowestPrice=get_post_meta($_GET['price_range'],"lowest_price",true);
    $maximumPrice=get_post_meta($_GET['price_range'],"maximum_price",true);
    $properties['meta_query'][] = array(
        'key' => 'price',
        'value' =>  array($lowestPrice, $maximumPrice),
        'type' => 'numeric',
        'compare' => 'BETWEEN',
    );
}



/*check bedrooms range */
   if (!empty($_GET['bedrooms'])) {
        $beds_value=get_post_meta($_GET['bedrooms'],"beds_value",true);
        if($beds_value)
        {
            $properties['meta_query'][] = array(
            'key' => 'dorm_room',
            'value' =>  $beds_value,
            'type' => 'numeric',
            'compare' => '>='
            );

        }
    }

 function orderbyreplace($orderby ) {
     global $wpdb;
             return ('mt1.meta_value DESC, mt2.meta_value DESC');
}
add_filter('posts_orderby','orderbyreplace');

query_posts($properties);

remove_filter('posts_orderby','orderbyreplace');

此代码按价格从高到低排序属性帖子,但不用dorm_room。

0 个答案:

没有答案