2014-07-16 30 views
0

在我的一個自定義帖子類型中,我有一個自定義字段,它從另一個自定義帖子類型獲取其值,並在下拉菜單中顯示它們,這被稱爲關聯自定義字段在PODS中。使用數組meta_key過濾器query_posts

當您選擇下拉菜單中的一個項目,然後顯示它時,它會返回一個數組。

我需要做的是通過其中一個自定義字段數組鍵的值來過濾此CPT中的帖子。

$industry = get_post_meta(get_the_ID(), 'industry', true); 
var_dump($industry); 

結果:

array(37) { 
    ["ID"]=> 
    string(2) "94" 
    ["post_author"]=> 
    string(1) "1" 
    ["post_date"]=> 
    string(19) "2014-05-20 18:30:28" 
    ... 
} 

我需要過濾通過industry的ID值這個職位。
什麼我試圖做的是修改query_posts()$args

$args = array(
    'post_type' => 'industries_contacts', 
    'meta_query' => array(
    array(
     'key' => 'industry', 
     'value' => array('ID' => $industry_ID), 
     'compare' => '=' 
    ) 
), 
    'posts_per_page' => 10, 
    'paged' => get_query_var('paged'), 
); 
query_posts($args); 

但當然這並沒有工作,並給了我一個錯誤。

請記住,我想使用WordPress的分頁,所以我不能在循環內運行條件語句以從存檔頁面中刪除不需要的帖子。

回答

0

您在'ID'的密鑰下傳遞一個包含您的值的數組,而不是在您的$industry_ID變量中傳遞密鑰'ID'的值。相反,這應該是$industry_ID['ID']

$args = array(
    'post_type' => 'industries_contacts', 
    'meta_query' => array(
    array(
     'key' => 'industry', 
     // you want to pass in the ID element of the $industry_ID array. 
     'value' => $industry_ID['ID'], 
     'compare' => '=' 
    ) 
), 
    'posts_per_page' => 10, 
    'paged' => get_query_var('paged'), 
); 
query_posts($args);