Php 如何使用两个自定义元键按我的自定义帖子类型排序

Php 如何使用两个自定义元键按我的自定义帖子类型排序,php,wordpress,custom-post-type,Php,Wordpress,Custom Post Type,我在房地产网站工作。我有CPT“soto_财产”。我还有两个定制的CPT字段,分别是“价格”和“宿舍”。我有一个搜索表单,访问者可以从中筛选不同价格和宿舍的酒店 所以我想要的是,如果访问者搜索2个寝室,它应该按照从高到低的价格顺序显示所有2个寝室,然后按照从高到低的价格顺序显示3个寝室,然后按照从高到低的价格顺序显示4个寝室 我已经遵循了下面显示的许多链接,但没有运气- 这是我的密码- $properties = array( 'post_type' => 'soto_prop

我在房地产网站工作。我有CPT“soto_财产”。我还有两个定制的CPT字段,分别是“价格”和“宿舍”。我有一个搜索表单,访问者可以从中筛选不同价格和宿舍的酒店

所以我想要的是,如果访问者搜索2个寝室,它应该按照从高到低的价格顺序显示所有2个寝室,然后按照从高到低的价格顺序显示3个寝室,然后按照从高到低的价格顺序显示4个寝室

我已经遵循了下面显示的许多链接,但没有运气-

这是我的密码-

$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');

此代码按价格从高到低对物业帖子进行排序,但不按宿舍进行排序

如果
价格范围
卧室
都不是空的(例如
“关系”=>“和”
),您是否尝试过设置关系参数?您可以在WordPress Codex中的多个自定义字段处理下查看示例: