如何根据原始URL更改分类URL?

时间:2018-01-24 作者:davemackey

我之前写过一个关于rewriting a URL based on an originating 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 个回复
最合适的回答,由SO网友:Jared Cobb 整理而成

这个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;
}

结束

相关推荐

更改_Terms中的最后一个分隔符

我如何展示the_terms 带逗号和“&;”在最后一个之前示例:标记:书籍、评论和;历史我需要在术语和a之间显示“,”&上学期之前。我使用以下代码来显示the_terms 在单个岗位上:<?php the_terms( $post->ID, \'post_tag\', \'Tags: \', \', \', \' \' ); ?>