2013-09-24 7 views
0

이 코드 wirte operators.Actually과 SQL 쿼리 생성 문제에 봉착 :

$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 사이, OR price = -1. 즉, 가격을 설정하지 않은 게시 또는 -1으로 설정해야 검색어에 표시해야합니다. 다른 조건 (도시, 유형 등)은 AND

과 일치해야합니다. 감사!

답변

0

초기 생각은 사용자 정의 SQL 조건을 쿼리에 삽입하기 위해 posts_where 또는 posts_join에 필터를 추가하는 것입니다. 이 라인을 따라

뭔가 :

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