2017-05-03 41 views
1

我有一個稱爲「屬性」的自定義帖子類型。多個ACF字段的查詢和排序

每個屬性都有一個ACF選框字段名爲 「property_status」 使用下列選項:

租金:租金

租用:租用

銷售:出售

銷售:銷售Homes

新建:正在施工

每個屬性也被稱爲一個有特色的上市ACF單選按鈕字段「property_featured」使用下列選項:

無:無

是:YES

我已經成功地查詢職位露面使用下面的代碼:

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

我需要用的「是:是」單選按鈕選擇調用功能性整理我的職位由自己的「prope,就會顯示「屬性」下的其他職位rty_status'的租金,租金和新的,銷售,然後銷售和新的。一些屬性可以在「property_status」字段中選擇2個複選框,例如租用屬性,但這些全部是「新建」。

我已經嘗試了幾種不同的查詢聲明,嘗試以我需要的順序顯示這些自定義帖子,但沒有取得任何成功。上面的代碼是我正在使用的。

回答

0

正如WP_Query documentation所描述的,如果你想通過兩段不同postmeta的命令(例如,property_featured第一和property_status秒),你需要結合和使用元的查詢鏈接到您的OrderBy陣列'命名元查詢'。

下面是修改代碼:

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

);