2015-01-09 2 views
0

У меня есть серия циклов, выплевывающих пользовательские типы сообщений «event», которые я хочу, чтобы вытаскивать сообщения только с post_status из «publish». Я добавил post_status 'publish' в свой массив wp_query, но он не работает. У меня по-прежнему появляются запланированные посты.WordPress Loop Not Respecting Post Status

<?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(); 
      ?> 

Кто-нибудь еще испытал эту проблему?

ответ

0

Использование 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', 
     ) 
    ), 
); 
+0

Эй, Дживини, моя сортировка цикла по дате истечения срока действия meta_value работает нормально. Моя проблема заключается в том, что запланированные сообщения появляются, даже если я установил аргумент post_status для публикации. Добавление meta_query не решает проблему. = (Может ли дополнительный оператор if в wp_query проверять значение post_status перед добавлением сообщения? – frontendpanda

0

Оказывается, запрос был штраф, однако, истечение срока после плагина «Сообщения Дата истечения срока действия» ломает post_staus. Вместо этого используйте «Post Expirator».