WP_Query Woocommerce 제품은 여러 카테고리에 속하며 tax_query만 해당됩니다.
사용하고 있다WP_Query
Woocommerce 제품의 경우 특정 카테고리의 제품을 쿼리하려고 합니다.이것은 나에게 효과가 있었던 구문이다.
$args = array(
'posts_per_page' => -1,
'product_cat' => 'category-slug-here',
'post_type' => 'product',
'orderby' => 'title',
);
$the_query = new WP_Query( $args );
// The Loop
while ( $the_query->have_posts() ) {
$the_query->the_post();
echo '' . get_the_title() . '<br /><br />';
}
wp_reset_postdata();
데이터를 반환하지만 카테고리 slug가 아닌 ID를 필터에 전달하고 여러 카테고리에 있는 제품만 찾습니다.
의론product_cat
비원어민WP_Query
(적어도 내가 찾을 수 있는 건) 그래서 이건 Woocommerce에 대한 커스텀이라고 생각해.이 문서에서는 카테고리 ID로 필터링하거나 이 필터링에 AND 조건을 사용할 수 있는 것을 찾을 수 없었습니다.
사용.cat
, 의 배열tax_query
,그리고.category__and
아무 결과도 얻지 못했습니다.기본적으로 카테고리 ID 102와 115에 있는 모든 제품에 대해 문의하고 싶습니다.만약 slug를 사용해야 한다면, 제가 가지고 있는 아이디로 그 정보를 얻을 수 있는 방법이 있을 것입니다만, 2개의 쿼리를 피하고 여러 카테고리로 필터링하고 싶습니다.
이거 어떻게 하는지 아는 사람 있어?
업데이트: 카테고리 슬래그를 콤마로 구분하는 것을 배웠습니다.product_cat
인수에는 "OR" 효과가 나타나기 때문에 두 제품 모두와 구별되는 제품이 결합됩니다. 하지만 이것은 제가 찾고 있는 것이 아닙니다.예를 들어 다음과 같습니다.
'product_cat' => 'category-slug1, category-slug2'
두 카테고리의 제품을 모두 반품하지만, 두 카테고리 또는 여러 카테고리에만 속하는 개별 제품을 찾는 중입니다.
와우, 몇 시간 동안 머리를 부딪친 후에, 이렇게 해결할 수 있었어요
$args = array(
'posts_per_page' => -1,
'tax_query' => array(
'relation' => 'AND',
array(
'taxonomy' => 'product_cat',
'field' => 'slug',
'terms' => 'category-slug1'
),
array(
'taxonomy' => 'product_cat',
'field' => 'slug',
'terms' => 'category-slug2'
)
),
'post_type' => 'product',
'orderby' => 'title',
);
$the_query = new WP_Query( $args );
이 기능은tax_query
인수(포함)relation => 'AND'
제품이 두 가지 범주에 모두 속하는지 확인합니다.
이것이 미래에 누군가에게 도움이 되기를 바랍니다.
슬러그가 아닌 아이디를 패스하는 방법도 알 수 없었습니다(확실히 방법이 있을 것입니다만), 아이디를 바탕으로 슬러그를 회수하는 기능이 있습니다.
$terms = get_term($YOURID, 'product_cat');
$theslug = $terms->slug;
WordPress codex on에서 범주 매개 변수에 대해 다음을 수행합니다.
OR에 상당하는
$args = array( 'product_cat' => 'category-slug1,category-slug2' );
AND에 상당하는
$args = array( 'product_cat' => 'category-slug1+category-slug2' );
예.
$query = new WP_Query( $args );
카테고리별로 쿼리하려면_아이디 이게 통했어.
// First obtain term id:
//...
$all_categories = get_categories( $args );
$cat_ids = array();
foreach ($all_categories as $cat)
{
array_push($cat_ids, $cat->term_id);
}
//Now use ids from array:
$args = array(
'posts_per_page' => -1,
'post_type' => 'product',
'tax_query' => array(
array(
'taxonomy' => 'product_cat',
'field' => 'id',
'terms' => $cat_ids
)
)
);
'tax_query' 배열 내에서 쿼리에 대해 수행할 'operator'를 지정할 수 있습니다.'AND' 연산자를 사용하여 원하는 작업을 수행할 수 있습니다.
$args = array(
'posts_per_page' => -1,
'tax_query' => array(
'relation' => 'AND',
array(
'taxonomy' => 'product_cat',
'field' => 'slug',
'terms' => array( 'category-slug1', 'category-slug2' )
'operator => 'AND',
),
),
'post_type' => 'product',
'orderby' => 'title',
);
$the_query = new WP_Query( $args );
이 쿼리에 의해 선택된 모든 제품은 제공된 '약관'과 일치합니다.상세한 것에 대하여는, 다음의 링크를 참조해 주세요.https://codex.wordpress.org/Class_Reference/WP_Query#Taxonomy_Parameters
링크가 끊어질 경우를 대비해 다음 정보를 제공합니다.
operator (string) - 테스트할 연산자.사용 가능한 값은 'IN', 'NOT IN', 'AND', 'EXISTS' 및 'NOT EXISTES'입니다. 기본값은 'IN'입니다.
언급URL : https://stackoverflow.com/questions/20411807/wp-query-woocommerce-products-that-belong-in-distinct-multiple-categories-only-t
'programing' 카테고리의 다른 글
WordPress를 사용한 와일드카드 도메인 리디렉션 (0) | 2023.02.07 |
---|---|
Wordpress 웹 사이트 전체를 내보내려면 어떻게 해야 합니까? (0) | 2023.02.07 |
WooCommerce 작업 후크 및 템플릿 재정의 (0) | 2023.02.07 |
Woocommerce에서 새 제품을 추가할 때 모든 제품 특성 자동 추가 (0) | 2023.02.07 |
PHP 5.4가 설치된 WordPress 3.7에서 엄격한 표준 오류 비활성화 (0) | 2023.02.07 |