frontendpanda
frontendpanda

Reputation: 11

WordPress Loop Not Respecting Post Status

I have a series of loops spitting out 'event' custom post types that I want to only pull posts with a post_status of 'publish'. I've added the post_status of 'publish' in my wp_query array but it doesn't seem to work. I still have scheduled posts showing up.

<?php
          $args_hotel_feature = array(
            'post_type' => 'event',
            'post_status' => 'publish',
            'posts_per_page' => 2,
            'meta_key' => '_expiration_date',
            'orderby' => 'meta_value',
            'order' => 'ASC',
              array(
                'key' => '_expiration_date', 
                'value' => date("m-d-Y"), 
                'compare' => '>=', 
                'type' => 'NUMERIC,' 
              ),
            'tax_query' => array(
                  array(
                        'taxonomy' => 'EventCategory',
                        'terms' => 'hotel-feature',
                        'field' => 'slug',
                  )
              ),
          );

          $wp_query4 = new WP_Query($args_hotel_feature);
          if($wp_query4->have_posts()) :
             while($wp_query4->have_posts()) :
              $wp_query4->the_post();
            ?>

Anyone else experienced this issue?

Upvotes: 1

Views: 2163

Answers (2)

frontendpanda
frontendpanda

Reputation: 11

Turns out the query was fine, however, the post expiration plug-in "Posts Expiration Date" breaks post_staus. Use "Post Expirator" instead.

Upvotes: 0

jay.jivani
jay.jivani

Reputation: 1574

Use meta_query

$args_hotel_feature = array(
    'post_type' => 'event',
    'post_status' => 'publish',
    'posts_per_page' => 2,
    'orderby' => 'meta_value',
    'order' => 'ASC',
    'meta_query' => array(
          array(
                'key' => '_expiration_date', 
                'value' => date("m-d-Y"), 
                'compare' => '>=', 
                'type' => 'NUMERIC,' 
          ) 
      ),
    'tax_query' => array(
          array(
                'taxonomy' => 'EventCategory',
                'terms' => 'hotel-feature',
                'field' => 'slug',
          )
      ),
  );

Upvotes: 0

Related Questions