Vorlagen-Tags zum Anzeigen benutzerdefinierter Beiträge vom Post-Typ in der Kategorievorlage?

Ich entwickle ein benutzerdefiniertes Thema mit benutzerdefinierten Post-Typen beteiligt. Benutzerdefinierte Post-Typen wurden über das Plugin ‘Pods’ ( http://pods.io ) definiert.

Beim Schreiben einer category.php wurde mir klar, dass die Standardschleife keine CPT-Posts (Custom Post Types) abruft, die zu einer bestimmten Kategorie gehören. Ist das richtig? Falls nicht, sind Vorlagen-Tags verfügbar, um CPT-Posts einer bestimmten Kategorie zu rendern?

Oder ist der richtige Weg, CPT-Posts eher über WP_Query abzurufen?

Solutions Collecting From Web of "Vorlagen-Tags zum Anzeigen benutzerdefinierter Beiträge vom Post-Typ in der Kategorievorlage?"

Benutzerdefinierte Post-Typen werden standardmäßig von der Hauptabfrage ausgenommen auf Taxonomieseiten und benutzerdefinierten Post-Typ-Archiven ausgeschlossen.

Sie können einfach pre_get_posts , um die Hauptabfrage ( ändern Sie die pre_get_posts , bevor die SQL-Abfrage erstellt und ausgeführt wird ) entsprechend Ihren Anforderungen zu ändern .

Nur ein paar Anmerkungen zu pre_get_posts

  • pre_get_posts führt Front-End- und Back-End-Abfragen aus, daher ist es sehr wichtig, die is_admin() Prüfung für Abfragen is_admin() nur für das Front-End oder Back-End gedacht sind

  • pre_get_posts ändert alle benutzerdefinierten Instanzen von WP_Query , get_posts() ( die WP_Query ) und der Hauptabfrage ( die auch WP_Query ). Sie möchten die Überprüfung von is_main_query() , um nur die Hauptabfrage zu ändern.

Sie können Folgendes in einem Plugin oder der functions.php Ihres Themes tun

 add_action( 'pre_get_posts', function ( $q ) { if ( !is_admin() // Only target front end queries && $q->is_main_query() // Only target the main query && $q->is_category() // Only target category archives ) { $q->set( 'post_type', ['post', 'custom_post_type'] ); // Adjust as needed } )}; 

Sie müssen taxonomy.php anstelle von category.php verwenden

Lesen Sie die Template-Hierarchie auf https://developer.wordpress.org/themes/basics/template-hierarchy/

Alle Ihre benutzerdefinierten Posts verwenden taxonomy.php wenn Sie eine benutzerdefinierte Taxonomie definiert haben.

Nehmen wir zum Beispiel an, dass es zwei Taxonomien gibt, nämlich tax1 & tax2

Wenn Sie die gleiche Vorlage für beide Taxonomien möchten, dann gehen Sie mit taxonomy.php

Aber wenn Sie verschiedene Vorlagen für tax1 & tax2 dann verwenden Sie

taxonomy-tax1.php & taxonomy-tax2.php entsprechend

Ich hoffe, ich konnte einige Dinge für dich klären.

Alles Gute