Cum să creezi un wp_query care conține atât meta_query cât și tax_query

14 iun. 2011, 00:02:09
Vizualizări: 22.7K
Voturi: 6

Am un wp_query care funcționează excelent, dar nu pot avea simultan atât o meta query cât și o tax_query în acesta.

<?php 
    $event_query = new WP_Query(
        array( 
          'post_type'  => 'event',        // interogare doar pentru evenimente
          'meta_key'    => 'event-date',  // încarcă meta event_date
          'orderby'     => 'meta_value',
          'order'       => 'asc',         // ascendent, astfel evenimentele mai vechi apar primele
          'posts_per_page' => '-1',
          'meta_query'  => array(
             array(         // restricționează postările bazate pe valorile meta
              'key'     => 'event-date',  // meta care va fi interogată
              'value'   => date("Y/m/d"),  // valoarea pentru comparație
              'compare' => '>',          // metoda de comparație
              'type'    => 'DATE'  )
             ),
          'tax_query' => array(
            array(
                'taxonomy'  => 'event_category',
                'field'     => 'slug',
                'terms'     => $term_id,
                'operator'  => 'IN')

                ),

           ) // sfârșitul array-ului
        ); // închide apelul constructorului WP_Query

?>

Încerc să găsesc toate evenimentele din taxonomia $term_id și apoi să mă asigur că sunt toate în viitor și să le ordonez crescător.

Aveți vreo idee?

0
Toate răspunsurile la întrebare 1
3

Interogarea pare corectă și știu că meta_query și tax_query funcționează împreună fără probleme. Singurul lucru la care mă pot gândi este că interoghezi taxonomia după slug și transmiți ID-ul termenului, care sunt două lucruri diferite, schimbă:

'field'     => 'slug',

cu

'field'     => 'id',

în tax_query-ul tău.

14 iun. 2011 01:03:40
Comentarii

Am încercat asta fără niciun rezultat. Cred că problema este modul în care obțin id-ul. Nu cred că obțin id-ul corect.

TJ Sherrill TJ Sherrill
14 iun. 2011 19:26:43

Aveți dreptate, am lăsat câmpul ca Slug și apoi am configurat o variabilă cu slug-ul în ea și am folosit-o. Mulțumesc

TJ Sherrill TJ Sherrill
14 iun. 2011 19:52:39

este "term_id" în loc de "id". Valorile posibile sunt 'term_id', 'name' și 'slug'. 'term_id' este valoarea implicită.

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