Come creare una wp_query che contenga sia meta_query che tax_query

14 giu 2011, 00:02:09
Visualizzazioni: 22.7K
Voti: 6

Ho una wp_query che funziona bene ma non riesco ad avere contemporaneamente una meta query e una tax_query.

<?php 
    $event_query = new WP_Query(
        array( 
          'post_type'  => 'event',        // interroga solo gli eventi
          'meta_key'    => 'event-date',  // carica il meta event_date
          'orderby'     => 'meta_value',
          'order'       => 'asc',         // ascendente, così gli eventi più vicini prima
          'posts_per_page' => '-1',
          'meta_query'  => array(
             array(         // limita i post basandosi sui valori meta
              'key'     => 'event-date',  // quale meta interrogare
              'value'   => date("Y/m/d"),  // valore per il confronto
              'compare' => '>',          // metodo di confronto
              'type'    => 'DATE'  )
             ),
          'tax_query' => array(
            array(
                'taxonomy'  => 'event_category',
                'field'     => 'slug',
                'terms'     => $term_id,
                'operator'  => 'IN')

                ),

           ) // fine array
        ); // chiude la chiamata al costruttore WP_Query

?>

Sto cercando di trovare tutti gli eventi nella tassonomia $term_id e poi assicurarmi che siano tutti nel futuro e ordinati in modo ASC

Qualche idea?

0
Tutte le risposte alla domanda 1
3

La query sembra corretta e so che meta_query e tax_query funzionano bene insieme. L'unica cosa a cui posso pensare è che stai interrogando la tassonomia per slug e passando l'ID del termine, che sono due cose diverse, cambia:

'field'     => 'slug',

con

'field'     => 'id',

nel tuo tax_query.

14 giu 2011 01:03:40
Commenti

Ho provato senza alcun cambiamento. Penso che il problema sia come sto derivando l'id. Non credo che stia ottenendo l'id corretto

TJ Sherrill TJ Sherrill
14 giu 2011 19:26:43

Avevi ragione, ho lasciato il Field come Slug e poi ho impostato una variabile con lo slug al suo interno e l'ho utilizzata. Grazie

TJ Sherrill TJ Sherrill
14 giu 2011 19:52:39

è "term_id" invece di "id". I valori possibili sono 'term_id', 'name' e 'slug'. 'term_id' è quello predefinito.

Shoaib Iqbal Shoaib Iqbal
11 set 2015 07:55:47