2013-12-19 82 views
0

我試圖查詢基於自定義字段的帖子,然後在循環中顯示它們。我已經檢查了代碼和其他來源,並對代碼進行了重複檢查,但查詢仍然無法正常工作。我究竟做錯了什麼?如何查詢Wordpress中的自定義字段?

剝離下來的要領,我的代碼看起來是這樣的:

<?php 
    $args = array(
    'meta_key' => 'my_custom_field' 
); 
    $my_query = new WP_Query($args); 
?> 
<?php if ($my_query->have_posts()) { ?> 
    <p>Success, we have posts!!!</p> 
<?php } else { ?> 
    <p>Uh Oh, No posts!!!</p> 
<?php } ?> 

條件語句在下降通過並返回「呃哦,不上崗」。

我檢查了postmeta表,肯定有包含meta_key _my_custom_field的帖子。我已經嘗試了使用和不使用前導下劃線的查詢。

我在做什麼錯?

回答

1

我用這個搜索兩個自定義日期字段之間的日期在我的自定義後鍵入「porfolio」,我認爲你是在一個類似的情況:

$args = array(
        'post_type' => 'portfolio', 
        'posts_per_page' => '10', 
        'meta_query' => array(
             array('key' => 'portfolio_start_date', 'value' => data_to_db2($ricerca_data), 'compare' => '<=', 'type' => 'NUMERIC'), 
             array('key' => 'portfolio_end_date', 'value' => data_to_db2($ricerca_data), 'compare' => '>=', 'type' => 'NUMERIC') 
             ) 
       ); 
$the_query = new WP_Query($args); 
if ($the_query->have_posts()) { 
$post_count = wp_count_posts(); 
while ($the_query->have_posts()) { 

// DO WHAT YOU WANT 

} 

} 

我的建議是在$使用meta_query args array

+0

感謝firegab,我試過這種方法,但仍然沒有成功。如果我刪除meta_query,並且只查詢例如post_type,函數返回預期的帖子。所以在設置或查詢元鍵時必定會出現錯誤。我不確定如何調試這個。有什麼建議?你的mysql表中的 –

+0

wp_postmeta字段結果保存是否正確? – Firegab

+0

嗨firegab,是的,它被正確保存。我只是嘗試使用此自定義字段創建多個帖子和頁面,並突然查詢正在工作。對於改變了什麼感到困惑,但現在正在開展工作。感謝您的幫助 –