2017-10-13 28 views
2

我想要使用meta_query和tax_query的組合來獲得帖子,但我無法使用組合的帖子獲得帖子。Tax_query和meta_query的組合不會獲得帖子

以下是我的代碼。

<?php 
      $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; 
      $args = array(
         'post_type' => 'tm-property', 
         'posts_per_page'=>-1, 
         'meta_or_tax' => TRUE,       
         'paged' => $paged, 
         'order'    => 'DESC', 

         'tax_query' => array(
              array(
              'taxonomy' => 'tm-property_type', 
              'field' => 'term_id', 
              'terms' => $id 
              ) 
            ), 


         'meta_query'  => array(
         'relation' => 'AND',      
           array(
            'key'   => '_tm_property_bedrooms', 
            'value'  => $min_bed, 
            'compare'  => '=', 
           ), 

           array(
            'key'   => '_tm_property_bathrooms', 
            'value'  => $min_bath, 
            'compare'  => '=', 
           ),             
        ),         
      ); 

      $custom_posts = new WP_Query($args); 

      ?> 

我得到空白數組。

另外我想列出那個沒有任何分類的帖子。

例如,我有5個職位,2個職位有分類,其他3個沒有任何分類。

所以當選擇分類名稱時,它會顯示選定的分類標準,當我不選擇分類只選擇元值,然後它會顯示沒有分類的帖子。

是否有可能使用meta_query和tax_query的組合進行發佈?

+0

有可能低於這一說法。什麼是查詢生成的SQL('print $ custom_posts-> request;')? – janh

+0

我在my_sql中打印了$ custom_posts-> request和過去的查詢,但得到了空的結果。 –

+0

這很奇怪。 var_export($ custom_posts)''怎麼辦? – janh

回答

0

請嘗試查詢

<?php 
$category_object  = get_queried_object(); 
$category_taxonomy  = $category_object->taxonomy; 
$category_term_id  = $category_object->term_id; 

$min_bed = array('1000', '4000'); 
$min_bath = array('2000', '3200'); 

$paged = (get_query_var('paged')) ? get_query_var('paged') : 1; 
$args = array(
    'type'    => 'tm-property', 
    'post_status'  => 'publish', 
    'posts_per_page' => 10, 
    'paged'    => $paged, 
    'caller_get_posts' => -1, 
    'meta_query'  => array(
           'relation' => 'AND',      
           array(
            'key'   => '_tm_property_bedrooms', 
            'value'  => $min_bed, 
            'type' => 'numeric', 
            'compare' => 'BETWEEN', 
           ), 
           array(
            'key'  => '_tm_property_bathrooms', 
            'value' => $min_bath, 
            'type' => 'numeric', 
            'compare' => 'BETWEEN', 
           ),             
          ),  
    'tax_query'   => array(
          array(
          'taxonomy' => 'tm-property_type', 
          'field' => 'id', 
          'terms' => $category_term_id 
          ) 
         ), 
    'orderby'   => 'name',    
    'order'    => 'DESC',      
); 
$custom_posts = null; 
$custom_posts = new WP_Query($args); 

if($custom_posts->have_posts()) : 
    while ($custom_posts->have_posts()) : $custom_posts->the_post(); 
     echo get_the_title($post->ID); 
    endwhile; 
endif; 
wp_reset_query($custom_posts); 
?> 
+0

仍然空白陣列。 –

+0

什麼是關鍵「_tm_property_bedrooms」和「_tm_property_bathrooms」)或「tm_property_bedrooms」和「tm_property_bathrooms」?請檢查。 –

+0

關鍵是seme,「_tm_property_bedrooms」的值在1000-4000之間,_tm_property_bathrooms的值在2000-3200 –