2016-12-01 77 views
0

我想抓住所有包含meta key'basePrice'的Wordpress頁面,而不管元值如何。如何獲取包含相同元鍵的所有頁面?

當我嘗試做一個簡單的get_pages()時,返回一個空數組。 根據WordPress的文檔,它指出,meta_value要求meta_key工作,但不是相反,所以它應該工作?

$basePrices = get_pages(array(
    'meta_key' => 'basePrice' 
)); 

如何獲得所有在我的數組中有一個名爲'basePrice'的元鍵的頁面?

回答

0

首先,您應該爲這些複雜查詢使用WordPress查詢對象。這會給你更多的參數。

所以,你可以這樣做:

// Let's prepare our query: 
$args = array(
    'post_type' => 'page', 
    'posts_per_page' => -1, 
    'meta_query' => array(
     array(
      'key' => 'basePrice', 
      'compare' => 'EXISTS' 
     ), 
    ) 
); 
$the_query = new WP_Query($args); 

// Array to save our matchs: 
$pages = array(); 

// The Loop 
if ($the_query->have_posts()) { 

    while ($the_query->have_posts()) { 

     // Let's take what we need, here the whole object but you can pick only what you need: 
     $pages[] = $the_query->the_post(); 

    } 

    // Reset our postdata: 
    wp_reset_postdata(); 
} 

這應該只是罰款。

使用get_pages()的另一種方式是獲取所有頁面 - >循環它們 - >創建一個get_post_meta()if語句。如果有值,則將當前頁面添加到您的陣列。但是,正如你可以想象的,你必須加載所有頁面,而你不應該。

希望有幫助,

相關問題