WordPress tax_query, wobei die Taxonomie leer ist

Lesezeit: 1 Minute

Benutzer-Avatar
lior r

Ich verwende mehrere Taxonomie-Abfragen, um relevante Beiträge zu erhalten

    $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);

Wenn ein Beitrag mit transfer_type und einem Bereich getaggt ist, gibt es kein Problem, aber wenn ein Beitrag nur mit einem davon getaggt ist, sind die Ergebnisse falsch.

Ich möchte grundsätzlich (in einigen Fällen) alle Beiträge ausschließen, die einen “Bereich” oder “Transfer_Typ” haben, und nur diejenigen erhalten, die sich mit dem anderen treffen.

ist es möglich ?

herausgefunden … (weiß nicht, ob es das Beste ist, aber es ist immer noch eine Lösung)

Falls eine der Taxonomien leer ist, verwende ich den „NOT IN“-Operator für die gesamten Taxonomiebegriffe

        $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'
        );

1345210cookie-checkWordPress tax_query, wobei die Taxonomie leer ist

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy