Как Я Могу Изменить URL-Адрес Таксономии На Основе Исходного URL-Адреса?
Ранее я написал вопрос о переписывании URL-адреса на основе исходного URL-адреса, и Майло предоставил мне рабочий ответ для страниц/сообщений. Но теперь я пытаюсь переписать таксономию, и та же функциональность, похоже, все ломает.
Вот мой код:
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' );
Что самое странное, так это то, к чему это приводит. Поэтому, если я выполню код, как Майло проинструктировал по вопросу, связанному выше, я получу URL-адрес для страниц например:
Https://liquidchurch.com/messages/app-view/
Но когда я использую приведенный выше код, я получаю то же самое:
Https://liquidchurch.com/messages/app-view/
Мысли?
1 answers
В term_link
фильтр имеет другую сигнатуру для своей функции обратного вызова, чем фильтр page_link
, что означает, что аргументы в вашем обратном вызове отличаются. (Также обратите внимание, что вам нужно будет явно задать номер аргумента при вызове add_filter
, потому что по умолчанию add_filter
установит только 1 аргумент. Например:
add_filter( 'term_link', 'lqd_series_link', 10, 3 ); // Where 3 is the number of arguments for your callback function
Затем в вашем обратном вызове:
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;
}