Vermeiden Sie Taxonomie-% Term% .php wenn mehr als eine Taxonomie

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?

Solutions Collecting From Web of "Vermeiden Sie Taxonomie-% Term% .php wenn mehr als eine Taxonomie"

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