Cómo crear una wp_query que contenga tanto meta_query como tax_query

14 jun 2011, 00:02:09
Vistas: 22.7K
Votos: 6

Tengo una wp_query que funciona muy bien pero no puedo tener tanto una meta query como una tax_query en ella.

<?php 
    $event_query = new WP_Query(
        array( 
          'post_type'  => 'event',        // consultar solo eventos
          'meta_key'    => 'event-date',  // cargar la meta event_date
          'orderby'     => 'meta_value',
          'order'       => 'asc',         // ascendente, eventos más tempranos primero
          'posts_per_page' => '-1',
          'meta_query'  => array(
             array(         // restringir posts basados en valores meta
              'key'     => 'event-date',  // qué meta consultar
              'value'   => date("Y/m/d"),  // valor para comparación
              'compare' => '>',          // método de comparación
              'type'    => 'DATE'  )
             ),
          'tax_query' => array(
            array(
                'taxonomy'  => 'event_category',
                'field'     => 'slug',
                'terms'     => $term_id,
                'operator'  => 'IN')

                ),

           ) // fin del array
        ); // cierre de la llamada al constructor WP_Query

?>

Estoy tratando de encontrar todos los eventos en la taxonomía $term_id y luego asegurarme de que todos estén en el futuro y ordenarlos de forma ASC

¿Alguna idea?

0
Todas las respuestas a la pregunta 1
3

La consulta parece correcta y sé que meta_query y tax_query funcionan bien juntos. Lo único en lo que puedo pensar es que estás consultando la taxonomía por slug y pasando el ID del término, que son dos cosas diferentes, cambia:

'field'     => 'slug',

por

'field'     => 'id',

en tu tax_query.

14 jun 2011 01:03:40
Comentarios

Lo intenté sin cambios. Creo que el problema es cómo estoy obteniendo el id. No creo que esté obteniendo el id correcto.

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

Tenías razón, dejé el Campo como Slug y luego configuré una variable con el slug dentro y usé eso. Gracias.

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

Es "term_id" en lugar de "id". Los valores posibles son 'term_id', 'name' y 'slug'. 'term_id' es el valor por defecto.

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