code

wordpress tax_분류학이 공백인 query

starcafe 2023. 10. 10. 20:47
반응형

wordpress tax_분류학이 공백인 query

관련 게시물을 얻기 위해 다중 분류법 쿼리를 사용하고 있습니다.

    $tax_query[] = array(
        'taxonomy' => 'transfer_type',
        'field'    => 'id',
        'terms'     => $page_terms['type_term'],
        'include_children' => false
    );


    $tax_query[] = array(
        'taxonomy' => 'area',
        'field'    => 'id',
        'terms'     => $page_terms['area_term'],
        'include_children' => false
    );

    $args = array(
        'post_type' => 'category_description',
        'tax_query' => $tax_query
    );

$description_post = get_posts($args);

transfer_type으로 taging 된 post와 영역은 문제가 없으나 post 중 하나만 taging 된 경우 결과가 틀립니다.

저는 기본적으로(경우에 따라) '영역'이나 'transfer_type'이 있는 게시물은 모두 제외하고, 다른 게시물과 만나는 게시물만 받고 싶습니다.

가능합니까?

알아냈어요...(최고인지는 모르겠지만 여전히 해결책입니다.)

분류 중 하나가 비어 있는 경우 전체 분류 용어에 "NOT IN" 연산자를 사용합니다.

        $terms = get_terms("transfer_type");
        foreach($terms as $term){
            $not_in_type[] = $term->term_id; 
        }

        $terms = get_terms("area");
        foreach($terms as $term){
            $not_in_area[] = $term->term_id; 
        }


        $tax_query[] = array(
            'taxonomy'         => 'transfer_type',
            'field'            => 'id',
            'terms'            => $page_terms['type_term'] ? $page_terms['type_term'] : $not_in_type,
            'include_children' => false,
            'operator'         => $page_terms['type_term'] ? 'IN' : 'NOT IN'
        );

        $tax_query[] = array(
            'taxonomy'         => 'area',
            'field'            => 'id',
            'terms'            => $page_terms['area_term'] ? $page_terms['area_term'] : $not_in_area,
            'include_children' => false,
            'operator'         => $page_terms['area_term'] ? 'IN' : 'NOT IN'
        );

언급URL : https://stackoverflow.com/questions/17270615/wordpress-tax-query-where-taxonomy-is-blank

반응형