Kombinieren Sie tax_query und meta_query in WP_Query

Ich baue eine Suche in WordPress. Ich suche nach einem custom_post_type in Kombination mit mehreren benutzerdefinierten Taxonomien und Metadatas .

custom_post_type: Fahrzeug

Taxonomien: Marke, Kraftstofftyp, …

Metadaten: Preis, Kilometerstand, …

Ich habe ein Formular, um die Anfrage an meine archive.php zu senden – übergibt die Daten gut (ich verifiziert mit $ _GET).

Die archive.php empfängt die übergebenen Daten und bereitet eine Abfrage für eine Schleife vor (die sich auch in der archive.php befindet).

Jeder Aspekt der von mir übergebenen Formulardaten (post_type, tax_query, meta_query) funktioniert sehr gut auf / in meiner archive.php – wenn ich sie einzeln benutze. Also kann ich Tax_query und Meta_query nicht kombinieren. Wenn ich beide in meinem Code verwende, zeigt / filtert es meine Schleife mit tax_query. Wenn ich tax_query aus meinem Code lösche meta_query arbeitet / filtert mit meiner Schleife.

Aber wie kombiniert man sie? Ich weiß, dass dieses “Problem” häufig ist.

Ich habe die Hälfte des Webs durchsucht. Es gibt viele Fragen zum Stackexchange, aber keine wirklichen Antworten (ich fand). Auch der WordPress-Codex gibt kein Beispiel für einen kombinierten Code.

Also ist eine Lösung notwendig. Irgendwelche Ideen?

Ich würde es vorziehen, sie mit einer normalen Bestellung zu kombinieren. Ich sah “tax_and_meta” und “tax_or_meta” für wp_query in einem, zwei Beispielen ( http://mycodeknowledge.blogspot.com/2017/02/combined-taxquery-and-meta-query-of.html ) auf verschiedene Arten versucht , scheint mir aber trotzdem nicht zu helfen.

Ich könnte / würde vielleicht die Metadaten zu taxonomys ändern (ich hatte diese Idee und habe es getan), aber als Standard habe ich keinen Operator wie “” mit tax_query, wie ich es mit meta_query habe. Also ist meine Idee gescheitert, weil ich die Preise vergleichen muss (gespeichert als Metadaten) … Jede Idee, wie man numerische Werte mit Taxonomie vergleicht, wäre eine andere Lösung.

Nächste mögliche Lösung> aber ich bevorzuge nicht, weil ich mysql nicht sehr gut spreche / schreibe. Ich sah / weiß, dass es möglich ist, meine Argumente in einer MySQL-Abfrage zu transformieren, um die database direkt zu fragen. Ich sah ein oder zwei Beispiele (und es scheint die Situation zu lösen http://zanematthew.com/wordpress-advanced-meta-query-using-wp_query/ ), aber ich kann den Code nicht verstehen / behandeln.

Ich muss dieses Ding wirklich lösen. Hast du eine Idee? Oder irgendwelche Fragen? Vielen Dank für Ihr Nachdenken!

Meine Form:

<form role="search" method="GET" id="searchform" action="">        

Meine Archiv.php:

   $_GET['post_type'], 'tax_query' => array( array( 'taxonomy' => 'model', 'terms' => $_GET['model'], 'field' => 'slug', ), array( 'taxonomy' => 'fueltype', 'terms' => $_GET['fueltype'], 'field' => 'slug', ), ), 'meta_query' => array( array( 'key' => '_price', 'value' => $_GET['price_max'], 'compare' => ' 'NUMERIC', ), ), ); get_header(); ?> 
have_posts() ) : ?> have_posts() ) : $query->the_post(); /* * Include the Post-Format-specific template for the content. * If you want to override this in a child theme, then include a file * called content-___.php (where ___ is the Post Format name) and that will be used instead. */ get_template_part( 'template-parts/loop', get_post_type() ); endwhile; wp_reset_postdata(); the_posts_navigation(); elseif ( have_posts() ) : ?>
<?php if($_POST['post_type'] = 'vehicle')get_sidebar('cars'); get_footer();

Solutions Collecting From Web of "Kombinieren Sie tax_query und meta_query in WP_Query"