Wordpress tax_query “e” operador não está funcionando como desejado

5

Eu tenho um tipo de postagem personalizada imagem com uma taxonomia personalizada chamada image_tag (é hierárquica como as categorias). Aqui estão alguns exemplos das tags que podem ser usadas:

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

Então, quero detalhar as imagens selecionando várias tags em conjunto com o operador "e". Por exemplo, encontrar todas as fotos com planta se casa 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',
    ),
  ),
);

Isso funciona bem, o problema começa quando tento incluir os termos pai, por exemplo:

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

Então não obtenho resultados. Eu estou supondo que porque eu estou usando o operador "e", o Wordpress não inclui os filhos do termo "Estrutura". Alguém tem uma ideia de como posso fazer isso funcionar, ou alguma outra solução para conseguir isso?

    
por dkeeling 24.08.2016 / 04:20

1 resposta

4

não testado, mas dê uma chance a isso

'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',
    ),
  ),
    
por Jeff 24.08.2016 / 05:09