Je veux obtenir les balises de produit des produits de woocommerce dans un tableau, pour faire la logique if/else avec elle (in_array), mais mon code ne fonctionne pas:
<?php
$aromacheck = array() ;
$aromacheck = get_terms( 'product_tag') ;
// echo $aromacheck
?>
En faisant écho à $ aromacheck, je ne reçois que des tableaux vides, bien que les balises de produit soient existantes - visibles dans la classe post.
Comment puis-je obtenir correctement les étiquettes de produit dans un tableau?
Solution (merci Noman et nevius):
/* Get the product tag */
$terms = get_the_terms( $post->ID, 'product_tag' );
$aromacheck = array();
if ( ! empty( $terms ) && ! is_wp_error( $terms ) ){
foreach ( $terms as $term ) {
$aromacheck[] = $term->slug;
}
}
/* Check if it is existing in the array to output some value */
if (in_array ( "value", $aromacheck ) ) {
echo "I have the value";
}
Vous devez parcourir le tableau et créer un tableau distinct pour vérifier in_array
car get_terms
retourne object
avec dans le tableau.
$terms = get_terms( 'product_tag' );
$term_array = array();
if ( ! empty( $terms ) && ! is_wp_error( $terms ) ){
foreach ( $terms as $term ) {
$term_array[] = $term->name;
}
}
Donc, après boucle à travers le tableau.
Vous pouvez utiliser in_array ().
Supposons que $term_array
contient une balise noir
if(in_array('black',$term_array)) {
echo 'black exists';
} else {
echo 'not exists';
}
J'ai dû analyser un args-array pour la fonction get_terms. Peut-être que cela aide aussi les autres.
$args = array(
'number' => $number,
'orderby' => $orderby,
'order' => $order,
'hide_empty' => $hide_empty,
'include' => $ids
);
$product_tags = get_terms( 'product_tag', $args );
$args = array(
'number' => $number,
'orderby' => $orderby,
'order' => $order,
'hide_empty' => $hide_empty,
'include' => $ids
);
$product_tags = get_terms( 'product_tag', $args );
//only start if we have some tags
if ( $product_tags && ! is_wp_error( $product_tags ) ) {
//create a list to hold our tags
echo '<ul class="sb-tag">';
//for each tag we create a list item
foreach ($product_tags as $tag) {
$tag_title = $tag->name; // tag name
$tag_link = get_term_link( $tag );// tag archive link
echo '<li class="sidebar-list-tag" ><a href="'.$tag_link.'"> <span>'.$tag_title.' </span></a></li>';
}
echo '</ul>';
}