我想生成一个查询,该查询返回一个类别数组以及另一个类别数组中的帖子。所以,如果我的两个数组是:
$offices = Array ( [0] => 73 [1] => 74 )
$grants = Array ( [0] => 108 [1] => 109 ) )
我想要包含符合条款108或109并且匹配条款73或74的帖子。
这可能吗?我的本能是用户类别_in,但你只能使用一次,如果我合并了数组,它会匹配任何类别的帖子,这不是我想要的。
答案 0 :(得分:1)
我想要包含符合条款108或109并且匹配条款73或74的帖子。
分类法参数也适用于类别,因为类别是内置分类法。
$args = array(
'post_type' => 'post',
'tax_query' => array(
'relation' => 'AND',
array(
'taxonomy' => 'category',
'field' => 'term_id',
'terms' => array( 73, 74 ),
),
array(
'taxonomy' => 'category',
'field' => 'term_id',
'terms' => array( 108, 109 ),
),
),
);
$query = new WP_Query( $args );
答案 1 :(得分:-1)
这个查询可以帮到你吗?
$Query = "SELECT * FROM $wpdb->posts
LEFT JOIN $wpdb->postmeta ON($wpdb->posts.ID = $wpdb->postmeta.post_id)
LEFT JOIN $wpdb->term_relationships ON($wpdb->posts.ID = $wpdb->term_relationships.object_id)
LEFT JOIN $wpdb->term_taxonomy ON($wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id)
LEFT JOIN $wpdb->terms ON($wpdb->term_taxonomy.term_id = $wpdb->terms.term_id)
WHERE $wpdb->term_taxonomy.taxonomy = 'category'
AND $wpdb->posts.post_status = 'publish'
AND $wpdb->posts.post_type = 'post'
AND ($wpdb->term_taxonomy.term_id = '".$offices[0]."' OR $wpdb->term_taxonomy.term_id = '".$offices[1]."')
AND ($wpdb->term_taxonomy.term_id = '".$grants[0]."' OR $wpdb->term_taxonomy.term_id = '".$grants[0]."')
ORDER BY $wpdb->postmeta.meta_value ASC"
$post = $wpdb->get_results($Query);