web-dev-qa-db-fra.com

Obtenir le type d'une taxonomie/terme

Je code un fil d'ariane et je veux renvoyer le nom du CPT devant le premier terme de taxonomie.

La structure de mon site Web est la suivante:

- CPT name
  - Taxonomy Term
    - Taxonomy Child Term
      - Post Archive of the articles from the CPT and the two terms

Si l'utilisateur se trouve dans les archives, le fil d'Ariane devrait indiquer:

Home > CPT name > Parent Term > Child Term

Je suis actuellement en mesure de renvoyer les termes parent et enfant, mais comment puis-je renvoyer le nom du type de message? J'ai sur la taxonomie personnalisée pour chaque type de message personnalisé, donc si serait cool si je pouvais obtenir le type de message par une fonction comme celle-ci:

global $wp_query;
$term_obj = $wp_query->get_queried_object();
$thisTerm = $term_obj->term_id;
$thisTerm = get_term( $thisTerm );
$postType = get_category($thisTerm->posttype);

Je sais que le terme objet n'a pas de clé posttype-, mais je pourrais obtenir la taxonomie de ce type. Existe-t-il une possibilité d'obtenir le type de message en entrant la taxonomie qui y est enregistrée?

2
Sam

On StackOverflow utilisateur indextwo suggère de procéder comme suit:

Utilisez la fonction get_taxonomy( $taxonomy-slug ) qui renvoie un objet contenant tous les types de publication associés. Comme suggéré dans les commentaires, nous pouvons alors utiliser
get_post_type_object( $post-type-slug ) pour obtenir l’objet et le libellé Singular.

$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;
        }
    }
}

Ce qui précède renverra les slugs de type publication dans un tableau générique.

Array(
    [post-type-slug]  => 'Post Type Name',
    [post-type-slug2] => 'Post Type Name 2',
)
1
Howdy_McGee