我有一个名为“property”的自定义帖子类型。
每个属性都有一个名为“property_status”的ACF复选框字段,其中包含以下选项:
租金:出租
租借:租用
促销:待售
已售出:已售出房屋
new:正在建设中
每个属性还有一个名为“property_featured”的ACF单选按钮字段,其中包含以下选项:
否:否
是的:是的我已成功使用以下代码查询帖子:
$paged = ( get_query_var( 'paged' ) ) ? absint( get_query_var( 'paged' ) ) : 1;
$args = array(
'post_type' => 'property',
'posts_per_page' => 12,
'meta_key' => 'property_status',
'orderby' => array(
'property_featured' => 'ASC',
'property_status' => 'ASC'
),
'order' => 'ASC',
'paged' => $paged
);
$wp_query = new WP_Query( $args );
我需要通过选择“是:是”的单选按钮来调用特色属性来订购我的帖子,然后通过他们的'property_status'显示租赁,租赁和新的销售的“属性”下的其他帖子,然后销售和新的。某些属性可以在“property_status”字段中选中2个复选框,例如租用属性,但这都是正在构建的“新”。
我尝试了几种不同的查询声明,尝试按照我需要的顺序显示这些自定义帖子,但没有取得任何成功。上面的代码就是我正在使用的。
答案 0 :(得分:0)
如WP_Query documentation中所述,如果您希望按两个不同的帖子排序(例如, property_featured 首先和 property_status 秒),需要使用“命名元查询”将元查询与您的订单数组合并链接。
以下是您修改的代码:
$args = array(
'post_type' => 'property',
'posts_per_page' => 12,
'paged' => $paged,
'meta_query' => array(
'relation' => 'AND',
'featured_clause' => array(
'key' => 'property_featured',
'compare' => 'EXISTS'
),
'status_clause' => array(
'key' => 'property_status',
'compare' => 'EXISTS'
)
),
'orderby' => array(
'featured_clause' => 'ASC',
'status_clause' => 'ASC'
)
);