我们可以通过下面的方法给自定义文章类型添加标签,比如下面的代码,我就给「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 中,再打开标签存档页面,案例文章类型中的案例已经出现在标签存档中了。