wie man tax_query benutzt, um beide Begriffe anzuwenden, oder einen, wenn einer leer ist

Ich habe Schwierigkeiten, Tax_Query als Filter für Posts zu erhalten. Was ich möchte ist, es so zu haben, dass es cpts anzeigt, die die Bedingungen der Grafschaft und des Status haben, aber auch funktionieren, wenn Bedingungen für Status oder Grafschaft nicht zur Verfügung gestellt werden. So zeigen die Posts, ob es in der Taxonomie der Grafschaft den Begriff “Adams” County und in der Status Taxonomie den Begriff “Locked” hat. Aber es muss auch funktionieren, wenn ein County nicht zur Verfügung gestellt wird, nur ein Status und umgekehrt.

Hier ist mein Code:

 'property', 'posts_per_page' => 5000, 'tax_query' => array( 'relation' => 'AND', array( 'taxonomy' => 'Status', 'field' => 'slug', 'terms' => explode( ',', $st_term_final_string ) ), array( 'taxonomy' => 'County', 'field' => 'slug', 'terms' => explode( ',', $il_term_final_string ) ) ) ); $loop = new WP_Query( $args ); while ( $loop->have_posts() ) : $loop->the_post(); the_title(); echo '
'; echo get_the_post_thumbnail(); the_content(); echo '
'; endwhile; ?>

Irgendwelche Hinweise, um mich in die richtige Richtung zu bringen?

Danke im Voraus

Solutions Collecting From Web of "wie man tax_query benutzt, um beide Begriffe anzuwenden, oder einen, wenn einer leer ist"

Ändern Sie Ihren Code wie folgt:

 $args = array( 'post_type' => 'property', 'posts_per_page' => 5000, ); $statuses = explode( ',', $st_term_final_string); $terms = explode( ',', $il_term_final_string ); if ( $statuses || $terms ) { $args['tax_query'] = array(); if ( $statuses ) { $args['tax_query'][] = array( 'taxonomy' => 'Status', 'field' => 'slug', 'terms' => $statuses ); } if ( $terms ) { $args['tax_query'][] = array( 'taxonomy' => 'County', 'field' => 'slug', 'terms' => $terms ); } if ( $statuses && $terms ) $args['tax_query']['relation'] = 'AND'; $loop = new WP_Query( $args ); // do your stuff here } else { // You have no statuses nor county, I don't know what you want to do in this case } 

Ich hoffe es hilft.