Wie kann ich eine Taxonomie-URL basierend auf der ursprünglichen URL ändern?

Ich habe vorher eine Frage zum Umschreiben einer URL basierend auf einer Ursprungs-URL geschrieben und Milo hat mir eine funktionierende Antwort für Seiten / Posts gegeben. Aber jetzt versuche ich, eine Taxonomie neu zu schreiben und die gleiche functionalität scheint die Dinge zu brechen.

Hier ist mein Code:

function lqd_series_link( $term_id, $taxonomy ) { if ( $taxonomy == 'gc-sermon-series' && isset( $wp_query->query_vars['app-view'] ) ) { return $taxonomy; // I've also tried $link } return $taxonomy; } add_filter( 'term_link', 'lqd_series_link' ); 

Was am seltsamsten ist, was daraus resultiert. Wenn ich also den Code mache, den Milo in der oben verlinkten Frage eingegeben hat, bekomme ich eine URL für Seiten wie:

https://liquidchurch.com/messages/app-view/

Aber wenn ich den obigen Code benutze, komme ich genau zur Sache:

https://liquidchurch.com/messages/app-view/

Gedanken?

Solutions Collecting From Web of "Wie kann ich eine Taxonomie-URL basierend auf der ursprünglichen URL ändern?"

Der Filter term_link hat für seine Callback-function eine andere Signatur als der Filter page_link , was bedeutet, dass die Argumente in Ihrem Callback unterschiedlich sind. (Beachten Sie auch, dass Sie die Argumentnummer beim Aufruf von add_filter explizit festlegen add_filter da add_filter standardmäßig nur 1 Argument erstellt. Beispiel:

 add_filter( 'term_link', 'lqd_series_link', 10, 3 ); // Where 3 is the number of arguments for your callback function 

Dann in Ihrem callback:

 function lqd_series_link( $url, $term, $taxonomy ) { global $wp_query; if ( $taxonomy == 'gc-sermon-series' && isset( $wp_query->query_vars['app-view'] ) ) { return $url . 'app-view/'; } return $url; }