2016-10-26 84 views
0

我想根据两个分类条件从wordpress数据库中选择记录。 我有以下查询,但它列出了所有记录。我想用分类法配方类别和术语90来过滤以下查询。如何才能做到这一点?如何筛选wordpress select查询与两个分类条件?

选择DISTINCT p.ID,p.post_author,p.post_date为DTE,从 wp_posts p左JOIN wp_postmeta M1 ON p.ID = m1.post_id左JOIN wp_term_relationships WTR ON(第wt.term_id。 ID = wtr.object_id)左JOIN wp_term_taxonomy WTT ON(wtr.term_taxonomy_id = wtt.term_taxonomy_id) 左JOIN wp_terms重量ON(wt.term_id = wtt.term_id)其中 p.post_type = '配方' 和p.post_status = '发布' AND(wtt.taxonomy = '配方风味' 和wtt.term_id IN(17)),以便通过DTE DESC

回答

0

为什么不使用WP_QUERY获得相关分类(recipe-category)员额和recipe-category ID期限90

$taxonomy  = 'recipe-category'; 
$taxonomy_terms = 90; 
$args   = array(
    'tax_query' => array(
     array(
      'taxonomy' => $taxonomy, 
      'field' => 'id', 
      'terms' => $taxonomy_terms, 
     ), 
    ), 
); 
$posts_related_to_taxonomy  = new WP_Query($args); 
if($posts_related_to_taxonomy->have_posts()) : 
    echo '<p>'; 
    while($posts_related_to_taxonomy->have_posts()) : $posts_related_to_taxonomy->the_post(); 
     ?> 
     <a href="<?php the_permalink(); ?>"> 
      <span><?php the_title(); ?></span> : <?php echo get_the_excerpt(); ?> 
     </a> 
     <br> 
    <?php endwhile; 
    echo '</p>'; 
else : 
    echo wpautop('No Records found'); 
endif; 

如果你希望两个分类之间进行搜索,然后用替换tax_query参数如下

'terms' => array($term)这参数可与数组的字符或字符串一起使用,将taxonomy1taxonomy2替换为其他分类法slu 012

'tax_query' => array(
     'relation' => 'AND', 
     array(
      'taxonomy' => 'taxonomy1', 
      'field' => 'id', 
      'terms' => array($term) 
     ), 
     array(
      'taxonomy' => 'taxonomy2', 
      'field' => 'id', 
      'terms' => array($term2), 
     )), 
0

好吧,更简单的方法是使用WP的get_posts template function。看起来像参数类别是你需要的。 AFAIK它允许使用任何分类术语ID,而不仅仅是类别。

如果您仍然希望使用直接的sql查询 - 如果您将以更易读的方式格式化有问题的查询,将更容易得到答案。