Ich habe eine Website mit mehreren benutzerdefinierten Taxonomien, die zum Filtern von Beiträgen verwendet werden.
Eine der Taxonomien hat eine taxonomy-%term%.php
Template-Datei.
/?country=the_country
zeigt die /?country=the_country
aber /?topic=the_topic&country=the_country
verwendet auch die /?topic=the_topic&country=the_country
.
Gibt es eine einfache Möglichkeit, das taxonomy-country.php
Template nicht zu laden, wenn mehr als eine Taxonomie abgefragt wird?
Siehe: Vorlagenhierarchie
Mein Vorschlag wäre, in diesem Fall von den Term-spezifischen Vorlagendateien abzuweichen und stattdessen nur taxonomy.php
, wo Sie in dieser Datei die Logik ausarbeiten können, die Sie benötigen, um die richtige Ausgabe zu machen; dh Sie können dann die Verwendung mehrerer Taxonomien erkennen und bei Bedarf anpassen.
Die Lösung hier wurde gefunden, indem (wie @jaswrks erwähnt hat) die Datei taxonomy-country.php
vollständig entfernt wurde.
Der Inhalt von taxonomy-country.php
wird dann in taxonomy.php bedingt geladen
Benutzerdefinierte post_types & taxonomies haben eine Option zum “Umschreiben” der URLs. In diesem Fall kollidierten manchmal die gleichen URL-Parameter, die die Taxonomiearchive filtern, mit diesem URL-Schema und führten zu unerwünschten Ergebnissen.
Die einfache Antwort wäre, das Umschreiben der URLs der Problemtaxonomien zu deaktivieren.
Aber eine sauberere Option erwies sich als zu
remove_filter( 'template_redirect', 'redirect_canonical' );
… mit dem das rewrite
Attribut von benutzerdefinierten post_types oder Taxonomien deaktiviert werden kann