Why is my WP_Query not working when tax_query terms are an array?

I have an issue with a WP_Query for a site I’m building which has me stumped.

This works as expected:

Read More
                            $package_args = array(
                                'post_type' => 'vamos-cpt-packages',
                                'tax_query' => array(
                                    'taxonomy' => 'vamos-holiday-types',
                                    'field' => 'slug',
                                    'terms' => 'activity-holidays'
                                )
                            );
                            $packages = new WP_Query($package_args);
                            var_dump($packages);

But when the terms are an array:

                            $package_args = array(
                                'post_type' => 'vamos-cpt-packages',
                                'tax_query' => array(
                                    'taxonomy' => 'vamos-holiday-types',
                                    'field' => 'slug',
                                    'terms' => array('activity-holidays')
                                )
                            );
                            $packages = new WP_Query($package_args);
                            var_dump($packages);

It doesn’t! I get no posts returned. Can anyone explain this?

Cheers
Kevin

Related posts

1 comment

  1. When you’re doing a tax_query or meta_query in a WP_Query, you always have to use a nested

    array( array() );
    

    just see the following example for an explanation and pay attention to the relation argument.

    $packages = new WP_Query( array(
        'post_type' => 'vamos-cpt-packages',
        'tax_query' => array(
            'relation' => 'AND',
            array(
                'taxonomy' => 'vamos-holiday-types',
                'field'    => 'slug',
                'terms'    => array( 'activity-holidays' )
            ),
            array(
                'taxonomy' => 'vamos-holiday-types',
                'field'    => 'id',
                'terms'    => array( 103, 115, 206 ),
                'operator' => 'NOT IN'
            )
        )
    ) );
    

Comments are closed.