0

Using WP_Query() I want to display all posts -except- those with the 'image' post_format. I tried this, but it did not work.

    $args = array(
      'relation' => 'NOT',      
      'tax_query' => array(
    array(
        'taxonomy' => 'post_format',
        'field' => 'slug',
        'terms' => array('post-format-' . $post_format),
      )
    ),
        'paged' => get_query_var('paged')
    );
    query_posts( $args );  

1 Answer 1

1

It didn't work because your tax query is missing the operator which should be set to NOT IN. So just add it like so:

'tax_query' => array(
    array(
        'taxonomy' => 'post_format',
        'field'    => 'slug',
        'terms'    => array( 'post-format-' . $post_format ),
        'operator' => 'NOT IN',
    )
),

And please, avoid using query_posts() — use new WP_Query() or get_posts() instead — or hooks such as pre_get_posts for modifying the query parameters.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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