在我的主题中,我有一个分类法的归档模板(taxonomy-cat\\u projet.php)。在这个模板中,我有一个分类法链接列表,允许用户选择分类法。下面是我用来列出类别链接的代码:
<ul>
<?php $args = array(
\'title_li\' => \'\',
\'taxonomy\' => \'cat_projet\',
\'hide_empty\' => false,
);
wp_list_categories( $args ); ?>
</ul>
是否有一种方法(一旦选择了一个类别)可以更改其链接,以便如果单击它,它会列出所有类别的帖子。例如,第一次单击会使该类别处于活动状态,第二次单击则会变为非活动状态。
我知道我可以用javascript来完成,但我更喜欢用php来完成,比如使用一些“当前分类链接”过滤器(如果存在的话)。
最合适的回答,由SO网友:Jacob Peattie 整理而成
内部wp_list_categories()
使用get_term_link()
获取术语的URL。可以使用term_link
筛选,以便您可以筛选指向当前术语的任何链接,并将其替换为指向帖子类型存档的链接:
function wpse_307202_term_link( $termlink, $term, $taxonomy ) {
if ( is_tax( \'cat_projet\' ) ) {
if ( get_queried_object_id() === $term->term_id ) {
$termlink = get_post_type_archive_link( \'post_type_name\' );
}
}
return $termlink;
}
add_filter( \'term_link\', \'wpse_307202_term_link\', 10, 3 );