2017-04-27 71 views
2

我在使用WordPress的meta_query時遇到問題。 iv'e嘗試的meta_key是wpcargo_status,值爲Delivered。問題是它仍然在獲得其他地位。這是iv'e試了一下...WordPress meta_query無效

$wpc_report_args = array(
    'post_type'   => 'shipment', 
    'post_status'  => 'publish', 
    'posts_per_page' => -1, 
    'meta_query'  => array(
     array( 
      'key'   => 'status', 
      'value'   => 'Delivered', 
      'type'   => 'CHAR', 
      'compare'  => '=', 
     ) 
    ),  
); 

$the_query = new WP_Query($wpc_report_args); 
// The Loop 
    if ($the_query->have_posts()) : 
    while ($the_query->have_posts()) : $the_query->the_post(); 
     echo get_the_ID().'<br />'; 
     echo get_post_meta(get_the_ID(), 'shipper_name', true).'<br />'; 
     echo get_post_meta(get_the_ID(), 'status', true).'<br />'; 
    endwhile; 
    endif; 
    // Reset Post Data 
    wp_reset_postdata(); 

On my database

Output of my query

你有什麼想法,有什麼錯我的代碼?

更新

我已經嘗試過這一點,它是工作,但我需要多個meta_query

'meta_key' => 'status', 
'meta_value' => 'Delivered', 
'meta_compare' => '=', 
+1

打印您的$ the_query看看meta_query爲空。 –

回答

1

Iv'e看出,在你的WP_Query沒有錯誤。並且您的查詢可能存在衝突,或者有重疊的地方。

  1. 停用其他插件
  2. 主題衝突
  3. 檢查parse_query - 這個鉤子將WP_Query後執行。
+1

非常感謝!另一個插件與parse_query衝突。 –

+0

太棒了!很高興我幫了忙。 :) –

1

試試這個

$wpc_report_args = array(
    'post_type' => 'shipment', 
    'meta_query' => array(
     array(
      'key' => 'status', 
      'value' => 'Delivered', 
      'compare' => '=' 
     ) 
    ) 
); 
$the_query = new WP_Query($wpc_report_args); 

類型 - 缺省值是 'CHAR'

0
$wpc_report_args = array(
    'post_type'   => 'shipment', 
    'post_status'  => 'publish', 
    'posts_per_page' => -1, 
    'meta_query'  => array(
     array( 
      'key'   => 'wpcargo_status', 
      'value'   => 'Delivered', 
      'type'   => 'CHAR', 
      'compare'  => '=', 
     ) 
    ),  
); 

$the_query = new WP_Query($wpc_report_args); 
// The Loop 
    if ($the_query->have_posts()) : 
    while ($the_query->have_posts()) : $the_query->the_post(); 
     echo get_the_ID().'<br />'; 
     echo get_post_meta(get_the_ID(), 'shipper_name', true).'<br />'; 
     echo get_post_meta(get_the_ID(), 'status', true).'<br />'; 
    endwhile; 
    endif; 
    // Reset Post Data 
    wp_reset_postdata(); 
相關問題