2016-11-18 3 views
0

Ich erstelle benutzerdefinierte Suche mit Erweiterte benutzerdefinierte Felder. Ich benutzte select Feld in meiner benutzerdefinierten Suche mit dem Namen 'city', und ich verwende auch Standard-Kategorie Taxonomie. Ich finde es schwierig, diese beiden zu kombinieren, um zusammenzuarbeiten.Benutzerdefinierte Felder im Suchformular verwenden

Ich denke, dass die benutzerdefinierten Felder nicht wie erwartet funktioniert oder überhaupt nicht funktioniert, denn wenn ich versuche, nur mit Kategorie zu suchen, funktioniert es gut.

Hier sind meine var_dump:

array (size=4) 
    'relation' => string 'OR' (length=2) 
    'post_type' => string 'post' (length=4) 
    'tax_query' => 
    array (size=4) 
     'taxonomy' => string 'category' (length=8) 
     'field' => string 'id' (length=2) 
     'terms' => 
     array (size=1) 
      0 => int 147 
     'operator' => string 'IN' (length=2) 
    'meta_query' => 
    array (size=2) 
     'relation' => string 'AND' (length=3) 
     0 => 
     array (size=4) 
      'key' => string 'city' (length=8) 
      'value' => 
      array (size=1) 
       0 => string 'New York' 
      'type' => string 'CHAR' (length=6) 
      'compare' => string '=' (length=1) 

Alle Richtungen für meinen Fehler?

Antwort

0

Die Standardtaxonomie muss auf tax_query festgelegt werden, und das benutzerdefinierte Feld (erstellt von Advanced Custom Field plugin) muss auf meta_query festgelegt werden. Auch in meinem Fall musste ich mehrere Werte für das benutzerdefinierte Feld festlegen, und dies kann durch Erstellen mehrerer Arrays erreicht werden. Hier

ist das Arbeitsbeispiel:

$taxquery['tax_query'] = array(
           'taxonomy' => 'category', 
           'field' => 'id', 
           'terms' => $categories, 
           'operator'=> 'IN' 
          ); 

$query->set('tax_query', $taxquery); 

$filter = array(
       'relation' => 'OR', 
       array(
         'key' => 'location', 
         'value' => 'New York', 
         'compare' => 'LIKE' 
       ), 
       array(
         'key' => 'location', 
         'value' => 'Chicago', 
         'compare' => 'LIKE' 
       ), 
       ); 

$query->set('meta_query',$filter); 
Verwandte Themen