주된 문제는 당신이 WP_Query
아닌 객체 를 사용해야 한다는 것 get_posts()
입니다. 나중에 기본적으로 post_type이 product가 post
아닌 항목 만 반환합니다 .
따라서 ID가 26 인 카테고리가 제공되면 다음 코드는 해당 제품을 반환합니다 (WooCommerce 3+)
$args = array(
'post_type' => 'product',
'post_status' => 'publish',
'ignore_sticky_posts' => 1,
'posts_per_page' => '12',
'tax_query' => array(
array(
'taxonomy' => 'product_cat',
'field' => 'term_id', //This is optional, as it defaults to 'term_id'
'terms' => 26,
'operator' => 'IN' // Possible values are 'IN', 'NOT IN', 'AND'.
),
array(
'taxonomy' => 'product_visibility',
'field' => 'slug',
'terms' => 'exclude-from-catalog', // Possibly 'exclude-from-search' too
'operator' => 'NOT IN'
)
)
);
$products = new WP_Query($args);
var_dump($products);
WooCommerce의 이전 버전에서 가시성은 메타 필드로 저장되었으므로 코드는 다음과 같습니다.
$args = array(
'post_type' => 'product',
'post_status' => 'publish',
'ignore_sticky_posts' => 1,
'posts_per_page' => '12',
'meta_query' => array(
array(
'key' => '_visibility',
'value' => array('catalog', 'visible'),
'compare' => 'IN'
)
),
'tax_query' => array(
array(
'taxonomy' => 'product_cat',
'field' => 'term_id', //This is optional, as it defaults to 'term_id'
'terms' => 26,
'operator' => 'IN' // Possible values are 'IN', 'NOT IN', 'AND'.
)
)
);
$products = new WP_Query($args);
var_dump($products);
여기서는 페이지 당 12 개의 가시적 인 제품 만 반환합니다.
를 통해 찾아 보게 http://codex.wordpress.org/Class_Reference/WP_Query#Taxonomy_Parameters 카테고리 타겟팅의 작동 방법에 대한 자세한 내용을 - 종종 ID보다는 슬러그하여 검색하는 것이 더 유용합니다!
category
또는product_category
?