web-dev-qa-db-fra.com

Afficher les termes d'une taxonomie personnalisée attribuée à une publication (à l'intérieur de la boucle) dans un ordre hiérarchique

Ce lien me dit comment afficher les catégories attribuées à un message.

Comment pourrais-je modifier ce code pour afficher les termes d'une taxonomie personnalisée attribuée à une publication dans un ordre hiérarchique?

2
Pete

Cela dépend de ce que vous essayez de faire exactement. Mais si vous souhaitez utiliser les mêmes fonctionnalités que la question que vous avez liée, vous pouvez utiliser la même fonction, mais en transmettant votre taxonomie personnalisée à la fonction. Ici, tous les arguments que vous pouvez passer à wp_list_categories() et sont des valeurs defulat:

<?php $args = array(
     'show_option_all'    => '',
         //Possible values of orderby: ID, name, slug, count, term_group 
     'orderby'            => 'name',
     'order'              => 'ASC',
     'style'              => 'list',
     'show_count'         => 0,
     'hide_empty'         => 1,
     'use_desc_for_title' => 1,
     'child_of'           => 0,
     'feed'               => '',
     'feed_type'          => '',
     'feed_image'         => '',
     'exclude'            => '',
     'exclude_tree'       => '',
     'include'            => '',
     'hierarchical'       => 1,
     'title_li'           => __( 'Categories' ),
     'show_option_none'   => __('No categories'),
     'number'             => null,
     'echo'               => 1,
     'depth'              => 0,
     'current_category'   => 0,
     'pad_counts'         => 0,
          //Change this with your custom taxonomy
     'taxonomy'           => 'your_custom_taxonomy',
      'walker'             => null
);
wp_list_categories($args);
?>

Le code ci-dessus générera une liste dans l'ordre hiérarchique avec tous les termes de la taxonomie spécifiée, pas uniquement ceux associés à la publication en cours. Mais nous pouvons limiter les termes inclus en utilisant l'argument inlcude:

<?php
global $post;
$taxonomy = 'your_taxonomy';

// get the term IDs assigned to post.
$post_terms = wp_get_object_terms( $post->ID, $taxonomy, array( 'fields' => 'ids' ) );

if ( !empty( $post_terms ) && !is_wp_error( $post_terms ) ) {

    $term_ids = implode( ',' , $post_terms );
    $args = array(
                'taxonomy'    => $taxonomy,
                'include'     => $term_ids,
                //Add more arguments if you need them with a different value from default
            );
    $terms = wp_list_categories($args);

    // display post categories
    echo  $terms;
}
?>
3
cybmeta