WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have a wp_query that works great but I can't have both a meta query and a tax_query in it.

    $event_query = new WP_Query(
          'post_type'  => 'event',        // only query events
          'meta_key'    => 'event-date',  // load up the event_date meta
          'orderby'     => 'meta_value',
          'order'       => 'asc',         // ascending, so earlier events first
          'posts_per_page' => '-1',
          'meta_query'  => array(
             array(         // restrict posts based on meta values
              'key'     => 'event-date',  // which meta to query
              'value'   => date("Y/m/d"),  // value for comparison
              'compare' => '>',          // method of comparison
              'type'    => 'DATE'  )
          'tax_query' => array(
                'taxonomy'  => 'event_category',
                'field'     => 'slug',
                'terms'     => $term_id,
                'operator'  => 'IN')


           ) // end array
        ); // close WP_Query constructor call


I am trying to find all the events in taxonomy $term_id and then make sure they are all in the future and order by ASC

Any ideas?

share|improve this question
up vote 2 down vote accepted

The query looks about right and I know that meta_query and tax_query work together just fine. the only thing i can think of is that you are query taxonomy by slug and passing the term id which are two different things, change:

'field'     => 'slug',


'field'     => 'id',

in your tax_query.

share|improve this answer
I tried that with no change. I think the issue is how I am deriving id. I don't think its coming up with the right id – TJ Sherrill Jun 14 '11 at 16:26
You were right, I left the Field as Slug and then setup a variable with the slug in it and used that. Thanks – TJ Sherrill Jun 14 '11 at 16:52
it is "term_id" instead of "id". Possible values are 'term_id', 'name' and 'slug'. 'term_id' is default. – Shoaib Iqbal Sep 11 '15 at 4:55

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.