I have a custom post type called listing and a custom taxonomy called listing_category. When I navigate to [DOMAIN]/listing/things-to-do, I would like the posts with the category of things-do-do to display only, however currently ALL posts under the listing post type are displayed. I am using the following:

$args = array( 
    'posts_per_page'        => get_option('posts_per_page'), 
    'post_type'             => 'listing',
    'tax_query'             => [
        'taxonomy'          => 'listing_category',
        'field'             => 'slug',
        'terms'             => array(81)

81 being the ID of the things-to-do category, though I have also tried by slug - still no joy.

Anything I'm missing here?

  • 1
    WordPress generates the query for you on taxonomy archives, you just need to run the default loop, why are you creating your own query? – Milo Nov 20 '17 at 16:03
  • Because for some reason when using the default loop on its own, it returns completely the wrong number of posts (I have 79 posts, but default loop returns 50 for some reason), and also pagination stops working. Perhaps that is another issue, but I am a bit at a loss at the moment. – wickywills Nov 21 '17 at 11:21
$args = array(
    'posts_per_page' => get_option('posts_per_page'),   
    'post_type' => 'listing',
    'tax_query' => array(
            'taxonomy' => 'listing_category',
            'field' => 'slug', //can be set to ID
            'terms' => array(81) 
$query = new WP_Query( $args );
  • Unless I'm missing something, all you have done is use the longer syntax for the array..? This doesn't work either unfortunately. – wickywills Nov 21 '17 at 8:15

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.