2016-10-26 4 views
0

2つのタクソノミの条件に基づいてWordPressデータベースからレコードを選択したいと思います。 私は次のクエリを持っています。しかし、すべてのレコードがリストされています。分類法レシピカテゴリと期間90の次のクエリをフィルタリングしたいのですが。どのように2つの分類法条件でワードプレス選択クエリをフィルタリングする?

DISTINCT p.ID、p.post_author、DTEとしてp.post_dateを選択し、pは、(P上WTR wp_term_relationshipsをJOIN wp_postmeta M1 ON p.ID = m1.post_id左JOIN左 wp_postsからwt.term_id。 ID = wtr.object_id)左JOIN wp_term_taxonomy WTT ON(wtr.term_taxonomy_id = wtt.term_taxonomy_id) はwp_termsをJOIN左WT ON(wt.term_id = wtt.term_id)ここ p.post_type = 'レシピ' とp.post_status = '公開' AND(wtt.taxonomy = 'レシピ料理'とwtt.term_id IN(17))の順番DESC

答えて

0

なぜあなたは2分類して検索したい場合は、以下の

'terms' => array($term)これでtax_query引数を置き換える分類(recipe-category)に関連した記事を取得するためにWP_QUERYを使用して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; 

の用語ではありません引数に用語IDまたは文字列の配列を使用することができます。taxonomy1taxonomy2を他の分類法と置き換えます。

'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クエリを使用したい場合は、問題のクエリをより読みやすい方法でフォーマットすると簡単に回答を得ることができます。

関連する問題