programing

Woocommerce 제품 가져오기

javajsp 2023. 3. 20. 21:27

Woocommerce 제품 가져오기

WordPress 웹사이트에서 WooCommerce의 제품 카테고리 목록을 얻기 위해 다음 코드를 사용했습니다.

 <?php
  $taxonomy     = 'product_cat';
  $orderby      = 'name';  
  $show_count   = 0;      // 1 for yes, 0 for no
  $pad_counts   = 0;      // 1 for yes, 0 for no
  $hierarchical = 0;      // 1 for yes, 0 for no  
  $title        = '';  
  $empty        = 0;
$args = array(
  'taxonomy'     => $taxonomy,
  'orderby'      => $orderby,
  'show_count'   => $show_count,
  'pad_counts'   => $pad_counts,
  'hierarchical' => $hierarchical,
  'title_li'     => $title,
  'hide_empty'   => $empty
);
?>
<?php $all_categories = get_categories( $args );

//print_r($all_categories);
foreach ($all_categories as $cat) {
    //print_r($cat);
    if($cat->category_parent == 0) {
        $category_id = $cat->term_id;

?>     

<?php       

        echo '<br /><a href="'. get_term_link($cat->slug, 'product_cat') .'">'. $cat->name .'</a>'; ?>


        <?php
        $args2 = array(
          'taxonomy'     => $taxonomy,
          'child_of'     => 0,
          'parent'       => $category_id,
          'orderby'      => $orderby,
          'show_count'   => $show_count,
          'pad_counts'   => $pad_counts,
          'hierarchical' => $hierarchical,
          'title_li'     => $title,
          'hide_empty'   => $empty
        );
        $sub_cats = get_categories( $args2 );
        if($sub_cats) {
            foreach($sub_cats as $sub_category) {
                echo  $sub_category->name ;
            }

        } ?>



    <?php }     
}
?>

정상적으로 동작하고, 제품 카테고리의 리스트를 반환합니다.저는 지금 특정 카테고리의 상품 리스트를 입수하려고 하고 있습니다.

: 용도의 모든 제품 입수cat_id=34.

상품이 투고되어 있는 것을 알고 있습니다만, 그것을 완료하려고 하고 있습니다만, 할 수 없는 것 같습니다.

특정 카테고리의 제품 목록을 얻으려면 어떻게 해야 합니까?

<?php  
    $args = array(
        'post_type'      => 'product',
        'posts_per_page' => 10,
        'product_cat'    => 'hoodies'
    );

    $loop = new WP_Query( $args );

    while ( $loop->have_posts() ) : $loop->the_post();
        global $product;
        echo '<br /><a href="'.get_permalink().'">' . woocommerce_get_product_thumbnail().' '.get_the_title().'</a>';
    endwhile;

    wp_reset_query();
?>

모든 제품의 썸네일과 이름이 제품 페이지에 대한 링크와 함께 나열됩니다.필요에 따라 카테고리 이름과 posts_per_page를 변경합니다.

사용 안 함WP_Query()또는get_posts()WooCommerce 문서:

wc_get_products 및 WC_Products_쿼리는 사용하기에 안전하고 향후 WooCommerce 버전에서 데이터베이스 변경으로 인해 중단되지 않는 제품을 검색하는 표준 방법을 제공합니다.커스텀 WP_Queries 또는 데이터베이스 쿼리를 구축하면 데이터가 커스텀 테이블로 이동하기 때문에 향후 버전의 WooCommerce에서 코드가 깨질 수 있습니다.

다음과 같이 원하는 제품을 검색할 수 있습니다.

$args = array(
    'category' => array( 'hoodies' ),
    'orderby'  => 'name',
);
$products = wc_get_products( $args );

WooCommerce 문서

주의: category 인수는 ID가 아닌 slug 배열을 사용합니다.

<?php
$args     = array( 'post_type' => 'product', 'category' => 34, 'posts_per_page' => -1 );
$products = get_posts( $args ); 
?>

이것은 당신이 원하는 모든 상품을 잡을 수 있을 것입니다.우커머스가 어떤 포스트 타입을 사용하는지는 잘 기억나지 않지만 포스트 타입을 잘못 알고 있을 수 있습니다.일련의 제품이 반환됩니다.

특정 카테고리 또는 기타 분류법에서 게시물/제품을 가져오려면 항상 tax_query를 사용하십시오.특정 분류법의 ID/slug를 사용하여 제품을 얻을 수도 있습니다.

$the_query = new WP_Query( array(
    'post_type' => 'product',
    'tax_query' => array(
        array (
            'taxonomy' => 'product_cat',
            'field' => 'slug',
            'terms' => 'accessories',
        )
    ),
) );

while ( $the_query->have_posts() ) :
    $the_query->the_post();
    the_title(); echo "<br>";
endwhile;


wp_reset_postdata();

언급URL : https://stackoverflow.com/questions/21028830/woocommerce-get-products