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