tax_query zeigt keine Ergebnisse, wenn nichts ausgewählt ist

Ich erstelle eine Immobilienwebsite auf WordPress, ich erstelle eine benutzerdefinierte Suche und verwende tax_query, um Suchergebnisse zu filtern, um “States” & “Suburbs” anzuzeigen.

Die Suche funktioniert gut, wenn Optionen ausgewählt sind. Wenn jedoch nichts ausgewählt ist, werden keine Suchergebnisse angezeigt. Dies ist ein Problem mit einer Immobilienwebsite, da ein Benutzer häufig einen “Staat” auswählen kann, aber nicht den “Vorort”, oder vielleicht gar nichts.

Gibt es einen richtigen Weg, oder wie soll ich das machen, damit Ergebnisse angezeigt werden, wenn nichts (oder das eine oder andere) ausgewählt ist?

Hier ist meine Auswahl Dropdown für Vororte:

  Any  'suburb', 'hide_empty' => true, 'orderby' => 'name', ) ); foreach( $suburb_terms as $term ) { echo 'slug . '">' . $term->name . ''; } ?>  

Und das Formular verarbeiten:

 // Suburbs if( !empty( $_GET['suburbs'] ) ) { $suburbs = $_GET['suburbs']; } // States if( !empty( $_GET['states'] ) ) { $states = $_GET['states']; } // the query $property_query = new WP_Query( array( 'post_type' => 'properties', 'posts_per_page' => 10, 'tax_query' => array( array( 'taxonomy' => 'state', 'field' => 'slug', 'terms' => $states, ), array( 'taxonomy' => 'suburb', 'field' => 'slug', 'terms' => $suburbs, ) ), ) ); 

Also nur um zu bestätigen, dass die Suche funktioniert, wenn Dropdowns ausgewählt sind. Aber in meinem Fall muss ich Ergebnisse anzeigen lassen, wenn nichts ausgewählt ist. Wer weiß, wie man das erreicht? Vielen Dank.

Solutions Collecting From Web of "tax_query zeigt keine Ergebnisse, wenn nichts ausgewählt ist"

Bis jetzt gut, fügen Taxonomiebedingung hinzu, indem sie die suburbs überprüfen und Wert angeben.

 // Suburbs if( !empty( $_GET['suburbs'] ) ) { $suburbs = $_GET['suburbs']; } // States if( !empty( $_GET['states'] ) ) { $states = $_GET['states']; } // Query arguments. $args = array( 'post_type' => 'properties', 'posts_per_page' => 10, ); $taxquery = array(); // if $state variable is selected. if(!empty($states) || isset($suburbs) ){ array_push($taxquery,array( 'taxonomy' => 'state', 'field' => 'slug', 'terms' => $states, )); } // if $suburbs variable is selected. if(!empty($suburbs) || isset($suburbs) ) ){ array_push($taxquery,array( 'taxonomy' => 'suburb', 'field' => 'slug', 'terms' => $suburbs, )); } // if $taxquery has array; if(!empty($taxquery)){ $args['tax_query'] = $taxquery; } // And finally fetch the all post. $property_query = new WP_Query($args); 

Ersetzen Sie Ihren PHP-Code damit. Es wird definitiv dein Problem lösen 🙂