Taxonomie und Datum in derselben Abfrage?

Ist es möglich, eine Tax_Query mit einer date_query im letzten WordPress zu kombinieren?

Hier ist mein Versuch, dies zu tun:

$args = array( 'post_type' => 'job', 'tax_query' => array( array( 'taxonomy' => 'location', 'terms' => 'dallas', 'field' => 'slug', ) ), 'date_query' => array( array( 'year' => '2014', 'month' => '12', ), ) ); $jobs = new WP_Query($args); 

Es ignoriert jedoch die Datumsabfrage, und nur die Taxonomieabfrage funktioniert. Wenn ich den Taxonomie-Abfrageabschnitt entferne, funktioniert die Datumsabfrage plötzlich.

Irgendwelche Ideen dazu?

Solutions Collecting From Web of "Taxonomie und Datum in derselben Abfrage?"

Sehen Sie sich die Datumsparameter genauer an. Sie müssen eine Ganzzahl (Zahl) eingeben, keine Zeichenfolge (Text). Einfach die einzelnen Anführungszeichen loswerden, damit es funktioniert:

 $args = array( 'post_type' => 'job', 'tax_query' => array( array( 'taxonomy' => 'location', 'terms' => 'dallas', 'field' => 'slug' ) ), 'date_query' => array( array( 'year' => 2014, 'month' => 12 ), ) ); $jobs = new WP_Query($args); 

Ein bisschen mehr graben. Ich konnte eine Bedingung basierend auf der Querystring machen und eine separate Abfrage ausführen.

Hier ist meine endgültige Lösung:

 if($locationq) { $qu = 'tax_query'; $typequery = array( array( 'taxonomy' => 'location', 'terms' => $locationq, 'field' => 'slug', 'operator' => 'IN', 'include_children' => false ) ); } else if($monthq || $yearq) { $qu = 'date_query'; $typequery = array( array( 'year' => intval($yearq), 'month' => intval($monthq), 'compare' => '=' ) ); } $jobargs = array( 'post_type' => 'career', $qu => $typequery ); 

Hier ist der vollständige Code, den ich verwendet habe, da es keine Möglichkeit gibt, “OR” als eine Relation in die Abfrage einzuführen. Dies überprüft nur, welche Abfrage aus der Abfragezeichenfolge auftritt, und wendet dann die korrekten Argumente auf WP_Query an. Hoffe das alles macht Sinn!

 < ?php $locationq = $_REQUEST["location"]; $monthq = $_REQUEST['month']; $yearq = $_REQUEST['year']; $searchq = $_REQUEST['keyword']; //list terms in a given taxonomy $taxonomy = 'careerlocation'; $tax_terms = get_terms($taxonomy); echo '
'; echo ''; echo ''; //list month and year of listed positions echo '
'; echo ' '; echo '
'; ?> < ?php //now run query filter on either date or location if($locationq) { $qu = 'tax_query'; $typequery = array( array( 'taxonomy' => 'careerlocation', 'terms' => $locationq, 'field' => 'slug', 'operator' => 'IN', 'include_children' => false ) ); } else if($monthq || $yearq) { $qu = 'date_query'; $typequery = array( array( 'year' => intval($yearq), 'month' => intval($monthq), 'compare' => '=' ) ); } else if($searchq) { $qu = 's'; $typequery = $searchq; } $jobargs = array( 'post_type' => 'career', $qu => $typequery ); $careersq = new WP_Query($jobargs); ?>