我正在为面包屑编码,我想在第一个分类术语前面返回CPT名称。
我的网站结构如下:
- CPT name
- Taxonomy Term
- Taxonomy Child Term
- Post Archive of the articles from the CPT and the two terms
如果用户在存档中,则面包屑应显示:
Home > CPT name > Parent Term > Child Term
我目前可以返回父项和子项,但如何返回帖子类型名称?我对每个自定义帖子类型都有自定义分类法,因此如果我可以通过以下函数获得帖子类型,那就太酷了:
global $wp_query;
$term_obj = $wp_query->get_queried_object();
$thisTerm = $term_obj->term_id;
$thisTerm = get_term( $thisTerm );
$postType = get_category($thisTerm->posttype);
我知道术语object没有
posttype
-键,但我可以得到这样的分类法。是否有可能通过输入注册到它的分类来获取帖子类型?
最合适的回答,由SO网友:Howdy_McGee 整理而成
在…上StackOverflow 使用者indextwo 建议执行以下操作:
使用get_taxonomy( $taxonomy-slug )
函数,该函数返回一个包含所有关联post类型的对象。根据评论中的建议,我们可以使用get_post_type_object( $post-type-slug )
获取对象和单数标签。
$post_type_names = array(); // Array( \'post-type-slug\' => \'Post Type Label\' );
$taxonomy = get_query_var( \'taxonomy\' );
if( ! empty( $taxonomy ) ) {
$tax_object = get_taxonomy( $taxonomy );
$cpt_array = $tax_object->object_type;
if( ! empty( $cpt_array ) ) {
$post_type_names = array_flip( $cpt_array );
foreach( $post_type_names as $cpt_slug => $tmp ) {
$post_type_names[ $cpt_slug ] = get_post_type_object( $cpt_slug )->labels->singular_name;
}
}
}
以上内容将在通用数组中返回post类型的slug。
Array(
[post-type-slug] => \'Post Type Name\',
[post-type-slug2] => \'Post Type Name 2\',
)