WP_query category__in não está funcionando, só puxa da primeira categoria

Eu escrevi uma WP_query e o comportamento é estranho. Provei quase tudo, mas isso não está funcionando. Encontrei uma solução, mas eu tento entender.

As seguintes consultas sempre retornam postagens da primeira cuidadoria (id: 15, slug: slug1).

$args = array( 'post_type' => 'post', 'post_status' => 'publish', 'category__in' => array(15, 17), 'posts_per_page' => 4 ); $query = new WP_Query($args); $items = $query->get_posts(); 

OU

 $args = array( 'post_type' => 'post', 'post_status' => 'publish', 'cat' => '15,17', 'posts_per_page' => 4, ); $query = new WP_Query($args); $items = $query->get_posts(); 

OU

 $args = array( 'post_type' => 'post', 'post_status' => 'publish', 'category_name' => 'slug1,slug2', 'posts_per_page' => 4, ); $query = new WP_Query($args); $items = $query->get_posts(); 

OU

 $args = array( 'post_type' => 'post', 'post_status' => 'publish', 'posts_per_page' => 4, 'tax_query' => array( array( 'taxonomy' => 'category', 'field' => 'term_id', 'terms' => array(15,17), ), ), ); $query = new WP_Query($args); $items = $query->get_posts(); 

A solução era usar query_post ($ args) em vez de WP_query-> get_posts ()

 $args = array( 'post_type' => 'post', 'post_status' => 'publish', 'category__in' => array(15, 17), 'posts_per_page' => 4 ); $items = get_posts($args); 

Você pode me dizer onde eu estou errado?

Solutions Collecting From Web of "WP_query category__in não está funcionando, só puxa da primeira categoria"

Seguindo a resposta de Milo , encontrei outra solução alternativa que funciona e eu estou mais confortável com ela.

 $args = array( 'post_type' => 'post', 'post_status' => 'publish', 'category__in' => array(15, 17), 'posts_per_page' => 4 ); $query = new WP_Query(); $items = $query->query($args);