Benutzerdefinierter Post-Typ Archivseitenfilterung

Ich habe einen benutzerdefinierten Post-Typ mit einer hierarchischen benutzerdefinierten Taxonomie. Die Taxonomie hat mehrere übergeordnete Begriffe und jeder übergeordnete Begriff hat mehrere untergeordnete Begriffe. Die Beiträge sind einem Elternteil und (meistens) einem Kind zugeordnet.

Ich möchte, dass meine Archivseite example.com/{cpt_slug} nur die übergeordneten Begriffe anzeigt. Nach einer ersten Auswahl befindet sich der Benutzer auf der zweiten Archivseite example.com/{cpt_slug}/{parent_term_sug} . Wenn der ausgewählte Begriff Kinder hat, sollte diese Seite nur diese anzeigen, damit der Benutzer erneut entscheiden kann, was er sehen möchte. Andernfalls sollten die Beiträge dieses Begriffs angezeigt werden.

Im Moment gibt es keine Pläne, Kinder-Kind-Begriffe zu haben, aber wenn es möglich ist, einen komplett dynamischen Code zu haben, der mit Enkeln und vielleicht sogar noch mehr umgehen kann, wäre das noch besser.

Hast du eine Idee, wie ich das erreichen könnte? Vielen Dank im Voraus!!

Solutions Collecting From Web of "Benutzerdefinierter Post-Typ Archivseitenfilterung"

Damit Ihre cpt-Archivseite eine Liste Ihrer übergeordneten Begriffe archive-{cpt_slug}.php können Sie in Ihrem Theme eine Vorlagendatei mit dem Namen archive-{cpt_slug}.php . Diese Datei wird automatisch beim Aufruf Ihres cpt-Archivs übernommen. Statt eine Schleife zu schreiben, um die einzelnen Beiträge auszugeben, rufen Sie eine Liste der übergeordneten Begriffe ab, um sie auszugeben. Versuchen Sie, die Begriffe wie folgt abzurufen:

 $terms = get_terms( array( 'taxonomy' => 'custom_taxonomy', 'parent' => 0, ) ); 

Diese Begriffe verlinken Sie auf die jeweilige Taxonomie-Archivseite der Begriffe. Für diese Seiten erstellen Sie jetzt eine Taxonomie- taxonomy-{custom_taxonomy}.php namens taxonomy-{custom_taxonomy}.php . Hier holen Sie die untergeordneten Begriffe (ändern Sie 'parent' => 0, in der obigen Abfrage auf 'parent' => get_queried_object_id(), ). Wenn dies ein leeres Ergebnis ergibt, starten Sie einfach eine Schleife, um die Posts normal auszugeben, andernfalls geben Sie die gefundenen untergeordneten Ausdrücke aus.

Denken Sie daran, dass das erste Archiv das Archiv für Ihren Post-Typ ist (normalerweise wäre der Slug: /{cpt_slug}/ ), das zweite Template für die benutzerdefinierte Taxonomie (hier wäre der normale Slug: /{custom_tax_slug}/{term_slug}/ ) und die verlinkten Posts sind wieder unter dem cpt’s slug (normalerweise /{cpt_slug}/{post_slug}/ ).

Wenn Sie Beispiele dafür benötigen, wie die Template-Dateien aussehen sollen, überprüfen Sie die aktuellen Theme-Dateien und suchen Sie nach der archive.php und wenn vorhanden taxonomy.php oder category.php . Diese Dateien sollten ein guter Ausgangspunkt sein.