获取分类/术语的邮寄类型

时间:2017-02-14 作者:Sam

我正在为面包屑编码,我想在第一个分类术语前面返回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-键,但我可以得到这样的分类法。是否有可能通过输入注册到它的分类来获取帖子类型?

1 个回复
最合适的回答,由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\',
)

相关推荐

Breadcrumbs - get the author?

我有自己的函数breadcrumbs()。在其中,我调用is\\u author()来确定我是否在作者页面上。如果是真的,我想知道我在哪个作者的页面上。我尝试了\\u author(),但没有结果。我还查阅了WP codex。有人能帮忙吗?