私は以前 元のURL に基づいてURLを書き換えることについての質問を書き、Miloは私にページ/投稿のための実用的な答えを提供してくれました。しかし今、私は分類法の書き換えをしようとしていると同じ機能は物事を壊すようです。
これが私のコードです:
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' );
奇妙なことは、これが何をもたらすかです。ですので、私がMiloが上記のリンクされた質問で指示したようにコードをするならば、私は最終的に次のようなページのURLになります:
https://liquidchurch.com/messages/app-view/
しかし、私が上記のコードを使用するとき、私は同じ正確な事に終わります:
https://liquidchurch.com/messages/app-view/
考えですか?
term_link
フィルタは、コールバック関数のシグニチャがpage_link
フィルタとは異なります。つまり、コールバック内の引数が異なります。 (また、デフォルトではadd_filter
は引数を1つしか設定しないため、add_filter
を呼び出すときには引数番号を明示的に設定する必要があります。例:
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;
}