it-swarm.com.de

Abfrage nach benutzerdefinierten Posts mit einem bestimmten Tag-Slug

Ich habe eine WordPress-Site mit mehreren benutzerdefinierten Beitragstypen. Auf einer Seite möchte ich nur Posts eines benutzerdefinierten Typs mit einem bestimmten Tag anzeigen. Ich habe dazu die folgende Abfrage verwendet:

$args = array(
    'tag_slug__in'    => array('tag1', 'tag2'),
    'post_type'       => 'custom_post',
    'post_status'     => 'publish',
    'posts_per_page'  => 10,
    'order'           => 'ASC',
    'orderby'         => 'menu_order'
);

$posts = new WP_Query( $args );

Wenn ich diese Abfrage jedoch ausführe, erhalte ich sowohl die Seite, die ich so markiert habe, als auch einen anderen benutzerdefinierten Beitragstyp (Ereignis) mit den Tags. Ich sollte dies jedoch auf den angegebenen custom_post-Typ beschränken. Ich habe überprüft, ob der von mir angegebene Name mit dem Namen des benutzerdefinierten Beitragstyps übereinstimmt.

Natürlich könnte ich dies am Anfang der Schleife trivial filtern, um nur meinen benutzerdefinierten Beitragstyp anzuzeigen, aber ich möchte die Rückgabe von Ergebnissen ordnungsgemäß handhaben. Gibt es eine Möglichkeit, dass die Abfrage meine Ergebnisse ordnungsgemäß nach NUR Posts mit diesem benutzerdefinierten Typ und den aufgelisteten Tags filtert?

3
neomang

Da tag eine Taxonomie eines custom_post-Beitragstyps ist, könnte die Abfrage folgendermaßen aussehen:

<?php
$args = array(
    'post_type'  => 'custom_post',
    'tax_query'  => array(
        array(
            'taxonomy'  => 'post_tag',
            'field'     => 'slug',
            'terms'     =>  array(
                'tag1',
                'tag2',
            ),
        ),
    ),
);

$posts = new WP_Query( $args );

Siehe WP_Query Taxonomieparameter .

1
Max Yudin