是否可以在Wordpress中组合多个category__in参数?

时间:2015-04-23 10:16:19

标签: wordpress

我想生成一个查询,该查询返回一个类别数组以及另一个类别数组中的帖子。所以,如果我的两个数组是:

$offices = Array ( [0] => 73 [1] => 74 )

$grants = Array ( [0] => 108 [1] => 109 ) )

我想要包含符合条款108或109并且匹配条款73或74的帖子。

这可能吗?我的本能是用户类别_in,但你只能使用一次,如果我合并了数组,它会匹配任何类别的帖子,这不是我想要的。

2 个答案:

答案 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 );

Web Audio specification

答案 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);
相关问题