it-swarm.com.de

WP_query category__in funktioniert nicht, es wird nur aus der ersten Kategorie gezogen

Ich habe eine WP_query geschrieben und das Verhalten ist komisch. Ich habe fast alles versucht, aber das funktioniert nicht. Ich habe eine Lösung gefunden, aber ich versuche zu verstehen.

Die folgenden Abfragen geben immer Beiträge aus der ersten Caregory zurück (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();

OR

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

$query = new WP_Query($args);
$items = $query->get_posts();

OR

$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();

OR

$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();

Die Lösung bestand darin, query_post ($ args) anstelle von WP_query-> get_posts () zu verwenden.

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

$items = get_posts($args);

Kannst du mir sagen, wo ich falsch liege?

1
Ludovic M.

Nach der Antwort von Milo habe ich eine andere Problemumgehung gefunden, die funktioniert und mit der ich mich wohler fühle.

$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);
1
Ludovic M.