Помогите с определением будущего обходного пути после публикации


Я публикую это в надежде немного узнать о фильтрах и $wp_query.

Я исследовал, как

  • показать один пост
  • с датой публикации в будущем
  • если вы не вошли в систему

И выяснил, что вы можете сделать это с помощью этой функции, которую я нашел здесь:

add_filter('the_posts', 'show_all_future_posts');

function show_all_future_posts($posts){
        global $wp_query, $wpdb;
       if(is_single() && $wp_query->post_count == 0)
   {
      $posts = $wpdb->get_results($wp_query->request);
   }
return $posts;
}

Мой вопрос:

Почему $wp_query->post_count==0 должно быть частью условного? Мне кажется, что на на одной странице запрос $wp_ вернет количество записей, равное 1.

Является $wp_query->post_count 0, когда запрос возвращает публикацию с будущимопубликованным статусом?

Это явно не чрезвычайная ситуация, но если бы кто-нибудь мог объяснить, почему этот фильтр в конечном итоге показывает сообщения со статусом будущей публикации, я был бы признателен!

 2
Author: Ann Foley, 2015-09-07

1 answers

Я думаю, что ответ таков:

Когда вы находитесь в режиме просмотра одной страницы/публикации/cpt (вы проверяете его с помощью is_single()), у вас всегда должно быть $wp_query->post_count равным 1, но если это будущая публикация/страница/cpt, то это приведет к 0 (потому что есть функции/действия, применяемые для проверки, будет ли это будущая публикация)

И $posts = $wpdb->get_results($wp_query->request); то, как вы говорите не применять эти функции/действия, которые проверяют будущие сообщения/страницы/cpt

 1
Author: Maikal, 2015-09-07 22:40:02