Category.php Vorlage für benutzerdefinierte Beiträge

Ich versuche, meine category.php-Datei zu verwenden, um alle Beiträge eines bestimmten benutzerdefinierten Beitragstyps (sagen wir “Firma”) mit einer bestimmten Kategorie anzuzeigen. Wenn ich jedoch versuche, es zu verwenden, indem ich zu domain.com/category/company/category1 navigiere, was der Link ist, der automatisch von wp_list_categories () generiert wird, erscheinen keine Posts.

Der Code, den ich verwende, ist:

   

Was mache ich falsch?

Solutions Collecting From Web of "Category.php Vorlage für benutzerdefinierte Beiträge"

Ich habe es herausgefunden! Für alle, die das gleiche Problem haben, habe ich es getriggers, indem ich hinzugefügt habe

 $cat_id = get_query_var('cat'); query_posts("post_type=company&cat=$cat_id"); 

direkt vor der Schleife. Wer das gleiche Problem hat, würde wahrscheinlich auch davon profitieren.

Der richtige Weg ist pre_get_posts dafür zu verwenden.

Sie können entweder hinzufügen, um in der search.php und anderen Seiten aus Vorlagenhierarchie wie folgt anzuzeigen:

 add_action('pre_get_posts', function($query) { if ( ! is_admin() && $query->is_main_query() ) { if ( is_archive() || is_category() ) { $query->set( 'post_type', 'company' ); } if ( $query->is_search() ) { $query->set( 'post_type', array( 'company' ) ); } } }); 

Um mehr über pre_get_posts() , sollten Sie sich diese Rede von Andrew Nacin (einem der führenden Entwickler von WP) ansehen.

Verwenden Sie die corekategorietaxonomie, indem Sie sie auf Ihren benutzerdefinierten Posttyp anwenden, oder haben Sie eine benutzerdefinierte Taxonomie definiert?

Wenn Sie eine benutzerdefinierte Taxonomie verwenden, müssen Sie die Vorlagendatei taxonomy-{taxonomy}.php oder taxonomy-{taxonomy}-{term}.php .

Aber wirklich, mit category.php oder taxonomy.php kann wirklich nicht sein, was Sie tun möchten. Haben Sie versucht, archive-{post-type}.php , um die Archiv-Indexliste von Posts von Ihrem benutzerdefinierten Post-Typ anzuzeigen?

Sie haben auch ein Problem damit:

 < ?php get_template_part( 'type-company', get_post_format() ); ?> 

Die Post-Format-Taxonomie gilt nur für Post Post-Typ; nicht zu irgendeinem, willkürlichen Post-Typ. Nochmal: Haben Sie die Post-Format-Taxonomie für Ihren benutzerdefinierten Post-Typ angepasst?

BEARBEITEN

Hinweis: Möglicherweise müssen Sie die Loop-Abfrage in category.php und / oder tag.php , um Ihre CPTs anzuzeigen.