WordPress-Multiple-Taxonomie-Abfrage

Ich habe eine einfache Form, die aus zwei Mehrfachselektionen besteht, die (wie durch Zauberei) mein Postarchiv mit URL-Parametern filtert:

United Kingdom Ireland Director Partner

Wenn ich ‘Irland’ und ‘Partner’ auswähle, werde ich an folgende Adresse geschickt:

 https://example.com/network/?country=ireland&_type=partner 

Wenn ich dann mehrere Werte wie “Irland”, “Vereinigtes Königreich” und “Partner” auswähle, werde ich an folgende Adresse gesendet:

 https://example.com/network/?country=ireland&country=united-kingdom&_type=partner 

Meine Frage ist, wie kann ich dieses Formular verwenden, um eine bedingte ‘ODER’ Anfrage mehr wie https://example.com/network/?country=ireland,united-kingdom&type=partner zu erstellen?

Solutions Collecting From Web of "WordPress-Multiple-Taxonomie-Abfrage"

Vielleicht können Sie dem HTML ein verstecktes Feld hinzufügen, das die 'relation' => 'OR' passiert.

    

Was bedeutet:

tax_query[relation]=OR&tax_query[][country]=united-kingdom&tax_query[][type]=director

 Array ( [tax_query] => Array ( [relation] => OR [0] => Array ( [country] => united-kingdom ) [1] => Array ( [type] => director ) ) ) 

Scheint, dass deine network benutzerdefiniert ist und würde dies mit $_REQUEST .


http_build_query() wie mehrere Taxonomieabfragen und eine Modellierung auf der Basis von http_build_query() , um 'relation' => 'OR' hinzuzufügen.

 $args = http_build_query( array ( 'post_type' => 'post', 'tax_query' => array ( 'relation' => 'OR', array ( 'taxonomy' => 'movie_genre', 'field' => 'slug', 'terms' => array ( 'action', 'comedy' ), ), array ( 'taxonomy' => 'actor', 'field' => 'term_id', 'terms' => array ( 103, 115, 206 ), 'operator' => 'NOT IN', ), ), ) ); echo "
"; echo PHP_EOL . $args . PHP_EOL; print_r( wp_parse_args( $args ) );

Am Ende sieht es so aus:

post_type=post&tax_query%5Brelation%5D=AND&tax_query%5B0%5D%5Btaxonomy%5D=movie_genre&tax_query%5B0%5D%5Bfield%5D=slug&tax_query%5B0%5D%5Bterms%5D%5B0%5D=action&tax_query%5B0%5D%5Bterms%5D%5B1%5D=comedy&tax_query%5B1%5D%5Btaxonomy%5D=actor&tax_query%5B1%5D%5Bfield%5D=term_id&tax_query%5B1%5D%5Bterms%5D%5B0%5D=103&tax_query%5B1%5D%5Bterms%5D%5B1%5D=115&tax_query%5B1%5D%5Bterms%5D%5B2%5D=206&tax_query%5B1%5D%5Boperator%5D=NOT+IN

Und kann von wp_parse_args() analysiert werden.