J'ai essayé de comprendre comment séparer les taxonomies de type courrier personnalisé.
$terms = get_the_terms( $post->ID , array( 'commitments', 'type' ) );
foreach ( $terms as $term ) {
$term_link = get_term_link( $term, array( 'commitments', 'type' ) );
if( is_wp_error( $term_link ) )
continue;
echo '<a href="' . $term_link . '">' . $term->name . '</a>';
}
Chaque taxonomie montre correctement. Cependant, je ne peux pas les séparer en virgule. il montre "TaxonomyATaxonomyB" mais je veux le montrer comme "TaxonomyA, TaxonomyB"
Comment faire? ou y a-t-il un autre moyen?
Merci!
Vous pouvez utiliser un compteur pour déterminer si vous devez ajouter une virgule ou non:
$terms = get_the_terms( $post->ID , array( 'commitments', 'type' ) );
// init counter
$i = 1;
foreach ( $terms as $term ) {
$term_link = get_term_link( $term, array( 'commitments', 'type' ) );
if( is_wp_error( $term_link ) )
continue;
echo '<a href="' . $term_link . '">' . $term->name . '</a>';
// Add comma (except after the last theme)
echo ($i < count($terms))? ", " : "";
// Increment counter
$i++;
}
Ou vous pouvez utiliser la fonction get_the_term_list .
<?php echo get_the_term_list( $post->ID, 'commitments', '', ', ' ); ?>
Le moyen le plus propre (IMO) de faire quelque chose comme cela en PHP est de construire un tableau et de l'imploser ensuite:
$list = [];
foreach ( $terms as $term ) {
$term_link = get_term_link( $term /* no need for taxonomy arg if $term is an object */ );
if ( ! is_wp_error( $term_link ) )
$list[] = $term_link;
}
echo implode( ', ', $list );