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 );
주의: 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
'programing' 카테고리의 다른 글
스프링 데이터 내의 FindAll과 함께 OrderBy를 사용하는 방법 (0) | 2023.03.20 |
---|---|
IE 8 자동으로 닫힘IE 8 자동으로 닫힘태그 (0) | 2023.03.20 |
텍스트 영역의 트위터 스타일 자동 완성 (0) | 2023.03.20 |
워드프레스에서 다음/이전 포스트 href 및 제목을 가져오는 방법 (0) | 2023.03.20 |
Ajax에서의 GET vs POST (0) | 2023.03.20 |