2013-09-24 36 views
0

我有麻煩產生與operators.Actually SQL查詢WIRTE驗證碼:

$args = array(
    'post_type' => 'listings', 
    'posts_per_page' => 10, 
    'paged' => $paged, 
    'meta_query' => array(
     //CITY 
     array(
      'key' => 'city', 
      'value' => $city,   
      'compare' => 'LIKE' 
     ),  
     //type 
     array(
      'key' => 'type', 
      'value' => $type,   
      'compare' => 'LIKE' 
     ),  
     //PRICE 
     array(
      'key' => 'price', 
      'value' => array(100, 5000),   
      'compare' => 'BETWEEN'   
     ),  
    ) 
); 

此代碼工作正常,但現在,我需要得到具有price職位在$start$end之間,或者price = -1。也就是說,沒有設置價格的帖子,或者設置爲-1必須在查詢中顯示。其他條件(城市,類型等)必須匹配AND

任何想法?謝謝!

回答

0

我最初的想法是在posts_where或posts_join上添加一個過濾器,以將自定義SQL條件插入到查詢中。沿着這些線路

東西:

wp_postmeta.meta_key='price' AND 
    (wp_postmeta.meta_value='-1' OR 
    CAST(wp_postmeta.meta_value AS INT) BETWEEN $start AND $end)