Alternative zu query-> set, die Bedingungen anfügt anstatt zu überschreiben

Ich verwende eine Taxonomiebedingung für die Hauptabfrage in meinem Plugin, die ein Array von Postformaten ausschließt.

Es wird folgendermaßen gemacht:

$query->set('tax_query', array( array( 'taxonomy' => 'post_format', // Post formats are queried as taxonomies 'field' => 'slug', 'terms' => self::$formats, 'operator' => 'NOT IN' ) )); 

Das funktioniert – die Post-Formate werden so ausgeschlossen, wie ich es wollte. Das Problem ist jedoch, dass, wenn eine tax_query Bedingung zuvor angegeben wurde, diese überschrieben und in Raum und Zeit verloren gehen würde.

Gibt es eine Möglichkeit, meine tax_query Bedingung anhängen zu tax_query , ohne dabei alle Bedingungen tax_query ?

Solutions Collecting From Web of "Alternative zu query-> set, die Bedingungen anfügt anstatt zu überschreiben"

$query->set ist nicht die einzige Methode.

Was Sie wollen, ist $query->get . Mit get Sie Ihren vorhandenen Wert abrufen, den gewünschten zusätzlichen Teil anhängen und dann die Abfragevariable mit dem neuen Argument festlegen

 $tax_query = $query->get( 'tax_query' ); // add the extra parameter $query->set( 'tax_query', $tax_query ); 

Das Hinzufügen des Extra-Parameters ist nur ein anderes Element mit Standard-PHP-Array-functionalität anhängen.