2016-05-02 15 views
2

Angenommen, ich habe zwei Meta-Schlüssel A und B für Wordpress Post. Ich muss alle Beiträge erhalten, wo Werte von A! = B mit Wp_Query. Ich konnte nur Codes finden, um mehrere Schlüssel zu vergleichen und dann eine UND/ODER-Beziehung zu machen. Irgendwelche Ideen? DankWp_Query: Filter Beiträge durch den Vergleich zweier Metaschlüssel

$args = array(
       'post_type' => 'product', 
       'posts_per_page' => 100, 
       'paged' => $page 
      ) 

$data= new WP_Query($args); 
+0

Von welchem ​​Metaschlüssel möchten Sie vergleichen –

+0

@PiyushDhanotiya Angenommen, Meta-Schlüssel-Namen sind MetaKey1 und MetaKey2. Dies sind unsere benutzerdefinierten Felder, die wir Produkten hinzugefügt haben. Ich muss alle Produkte erhalten, wo Wert von MetaKey1 ist! = MetaKey2 – sanjeev

+0

Wenn Sie Skriptlogik nicht neu anordnen können, sieht wie Sie aus, benutzerdefinierte MySQL-Abfrage zu schreiben. –

Antwort

5

Bitte versuchen Sie es wie folgt aus:

$args = array(
    'post_type' => 'product', 
    'meta_query' => array(
      'relation' => 'AND', 
      array(
        'key' => 'A', 
        'value' => '1', 
        'compare' => '='), 
      array(
        'key' => 'B', 
        'value' => '1', 
        'compare' => '!=') 
      ) 
); 
$data = new WP_Query($args); 
+0

Dies funktioniert nur, wenn wir die möglichen Werte von A und B kennen. Aber das ist nicht der Fall. Wir wissen nicht, welchen Wert es in A- und B-Feldern haben wird. – sanjeev

+0

Ich musste mehrere Abfragen für jede Kombination schreiben, um dies mit WP_Query zu tun. Ihre Antwort hat mir dabei geholfen. Markieren Sie es als eine Antwort. – sanjeev

0

Sie auf diese Weise gehen kann. Holen Werte sowohl Ihre Meta-Schlüssel und speichern diese Werte in die Variablen wie ($ a, $ b respectively), dann haben eine Kontrolle über diese Werte

if($a != $b) {$c = $a;} //If content of a is not of same as b $c contains meta value of a meta key 

Jetzt kommt die Abfrage-Seite.

$args = array(
      'post_type' => 'product', 
      'posts_per_page' => 100, 
      'paged' => $page' 
      'meta_key'  => 'a', 
      'meta_value' => $c, 
     ) 

     $data= new WP_Query($args); 

Probieren Sie es aus, es wird für Sie arbeiten.

Hinweis:a, b and cmeta keys und variables sind nur zu Beispielzwecken, nutzen Sie Ihre eigene meta key und meta values Ergebnisse zu erhalten, die zu Ihnen passt.

Verwandte Themen