在标签存档页面显示包含当前标签的所有文章类型的文章


我们可以通过下面的方法给自定义文章类型添加标签,比如下面的代码,我就给「case(案例)」这个自定义文章类型添加了标签的功能,以便通过标签把案例和其他文章类型关联起来。

add_action('init', 'add_taxonomy_objects');
function add_taxonomy_objects() {
    register_taxonomy_for_object_type('post_tag', 'case');
}

可是这样会出现一个问题,就是在默认的标签存档页面只会显示包含当前标签的文章,而不会显示包含当前标签的案例,这当然是有问题的。

还好我们有pre_get_posts这个filter,我们可以通过这个 Filter 给标签存档页面的查询加上 case 这个自定义文章类型即可。

/**
 * 在标签存档页面显示所有文章类型的文章
 */
function add_custom_types_to_tag_archives( $query ) {
    if( is_tag() ) {
        $post_types = array( 'post', 'case' );
        $query->set( 'post_type', $post_types );
        return $query;
    }
}
add_filter( 'pre_get_posts', 'add_custom_types_to_tag_archives' ); 

把上面的代码加入到当前主题的 functhion.php 中,再打开标签存档页面,案例文章类型中的案例已经出现在标签存档中了。

  • 分享:
评论
还没有评论
    发表评论 说点什么