web-dev-qa-db-de.com

Wordpress tax_query "und" Operator funktionieren nicht wie gewünscht

Ich habe einen benutzerdefinierten Beitragstyp von image mit einer benutzerdefinierten Taxonomie namens image_tag (es ist hierarchisch wie Kategorien). Hier sind einige Beispiele für die Tags, die verwendet werden könnten:

Structure (id: 25)
- House (id: 56)
- Skyscraper
Nature
- Animal
- Plant (id: 41)

Ich möchte also einen Drilldown durch die Bilder durchführen, indem ich mehrere Tags in Verbindung mit dem Operator "und" auswähle. Zum Beispiel finden Sie alle Fotos mit plant s und house s.

$query_args = array(
  'post_type' => 'image',
  'tax_query' => array(
    array(
      'taxonomy' => 'image_tag',
      'terms' => array(41, 56),    // IDs of "plant" and "house"
      'operator' => 'and',
    ),
  ),
);

Das funktioniert gut, das Problem beginnt, wenn ich versuche, die übergeordneten Begriffe einzuschließen, zum Beispiel:

$query_args = array(
  'post_type' => 'image',
  'tax_query' => array(
    array(
      'taxonomy' => 'image_tag',
      'terms' => array(25, 41),    // IDs of "structure" and "plant"
      'operator' => 'and',
    ),
  ),
);

Dann bekomme ich keine Ergebnisse. Ich vermute, dass Wordpress die untergeordneten Elemente des Begriffs "Struktur" nicht enthält, da ich den Operator "und" verwende. Hat jemand eine Idee, wie ich das zum Laufen bringen kann, oder eine andere Lösung, um dies zu erreichen?

6
dkeeling

nicht getestet, aber probieren Sie es aus

'tax_query' => array(
   'relation' => 'AND',
    array(
      'taxonomy' => 'image_tag',
      'field'    => 'term_id',
      'terms'    => 25,
      'operator' => 'IN',
    ),
    array(
      'taxonomy' => 'image_tag',
      'field'    => 'term_id',
      'terms'    => 41,
      'operator' => 'IN',
    )
  ),

OR

'tax_query' => array(
   'relation' => 'AND',
    array(
      'taxonomy' => 'image_tag',
      'field'    => 'term_id',
      'terms'    => array(25,41),
      'operator' => 'IN',
    ),
  ),
7
Jeff