我正在开发真正的州财产网站。我有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。