WP_Query-Argumente zum Abrufen benutzerdefinierter Beiträge vom Post-Typ in einer bestimmten Kategorie?

Ich habe stundenlang herumgespielt , kann aber immer noch nicht die richtigen Argumente für eine sekundäre WP_Query einkreisen, die alle Beiträge von my_custom_post_type abruft , die sich in der abgefragten Kategorie befinden.

Szenario ist eine benutzerdefinierte category.php-Vorlagendatei (ein benutzerdefiniertes Design schreiben), um ein Kategory-Archiv für benutzerdefinierte Post-Posts zu rendern. Daher wird die Hauptabfrage nach Kategoriename / Slug aus der URL abgerufen (zB / category / cat-name). Standardmäßig ruft die Hauptabfrage keine Posts für benutzerdefinierte Posts ab. Bitte beachten Sie, dass ich die Standardkategorie Taxonomie mit meinem benutzerdefinierten Beitragstyp verwende.

Also, ich suche nach etwas wie

$args = array( 'post_type' => 'my_custom_post_type', 'category_id' => $current_category_id ); 

Wie bekommt man $ current_category_id von der Hauptabfrage? Oder wie man es richtig macht?

Solutions Collecting From Web of "WP_Query-Argumente zum Abrufen benutzerdefinierter Beiträge vom Post-Typ in einer bestimmten Kategorie?"

Wenn Sie möchten, dass Ihre Hauptabfrage Ihren benutzerdefinierten Beitragstyp berücksichtigt, können Sie Folgendes tun:

 function add_custom_post_type_to_query( $query ) { if ( $query->is_archive() && $query->is_main_query() ) { $query->set( 'post_type', array('post', 'my_custom_post_type') ); } } add_action( 'pre_get_posts', 'add_custom_post_type_to_query' ); 

Sie können den obigen Code in die functions.php Ihres Themes oder in ein Plugin einfügen.

Um die aktuelle Taxonomie-Term-ID zu erhalten (hier ist die Taxonomie die Standard-Taxonomie “Kategorie”), können Sie die folgende Codezeile verwenden:

 get_queried_object()->term_id; 

(von hier )

Da Sie über den benutzerdefinierten Post-Typ sprechen, werden Sie wahrscheinlich auch eines Tages benutzerdefinierte Taxonomie verwenden. Um einen Taxonomie-Filter in einer WP_Query ordnungsgemäß einzuschließen, können Sie auf diesen Link verweisen

Hier ist ein Beispiel für WP_Query mit der Kategorie Taxonomie:

 $args = array( 'post_type' => 'my_custom_post_type', // or multiples : array('my_custom_post_type','post') 'tax_query' = array( array( 'taxonomy' => 'category', 'field' => 'term_id', 'terms' => get_queried_object()->term_id, ) ) ); 

Aber wahrscheinlich möchten Sie nie eine WP_Query mit einer Steuerabfrage für Ihren aktuellen Taxonomiebegriff ausführen, da dies automatisch geschieht (nachdem Sie den benutzerdefinierten Beitragstyp in den Hauptabfrageposttypen hinzugefügt haben).