programing

Woocommerce 어레이에서 제품 태그를 가져옵니다.

oldcodes 2023. 3. 20. 23:34
반응형

Woocommerce 어레이에서 제품 태그를 가져옵니다.

if/else 로직(in_array)을 수행하기 위해 어레이 내 woocommerce 제품의 제품 태그를 가져오고 싶은데 코드가 작동하지 않습니다.

<?php 

$aromacheck = array() ; 
$aromacheck = get_terms( 'product_tag') ; 
// echo $aromacheck

?>

$aromacheck를 에코할 때 제품 태그가 존재하지만 빈 Array만 표시됩니다(포스트 클래스에 표시됨).

어레이 내의 제품 태그를 올바르게 취득하려면 어떻게 해야 합니까?

솔루션(Noman과 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";
} 

어레이를 루프하여 별도의 어레이를 생성하여 확인해야 합니다.in_array왜냐면get_terms돌아가다object배열되어 있습니다.

$terms = get_terms( 'product_tag' );
$term_array = array();
if ( ! empty( $terms ) && ! is_wp_error( $terms ) ){
    foreach ( $terms as $term ) {
        $term_array[] = $term->name;
    }
}

어레이를 루프한 후입니다.

in_array()를 사용할 수 있습니다.
가정하다$term_array태그 블랙 포함

if(in_array('black',$term_array)) {
 echo 'black exists';
} else { 
echo 'not exists';
}
global $product;
$tags = $product->tag_ids;
foreach($tags as $tag) {
   echo get_term($tag)->name;
}

args-array를 get_terms 함수로 해석해야 했습니다.이게 다른 사람들에게도 도움이 될지도 몰라.

$args = array(
    'number'     => $number,
    'orderby'    => $orderby,
    'order'      => $order,
    'hide_empty' => $hide_empty,
    'include'    => $ids
);

$product_tags = get_terms( 'product_tag', $args );

언급URL : https://stackoverflow.com/questions/31904758/woocommerce-get-product-tags-in-array

반응형