Помогите с определением будущего обходного пути после публикации
Я публикую это в надежде немного узнать о фильтрах и $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, когда запрос возвращает публикацию с будущимопубликованным статусом?
Это явно не чрезвычайная ситуация, но если бы кто-нибудь мог объяснить, почему этот фильтр в конечном итоге показывает сообщения со статусом будущей публикации, я был бы признателен!
1 answers
Я думаю, что ответ таков:
Когда вы находитесь в режиме просмотра одной страницы/публикации/cpt (вы проверяете его с помощью is_single()
), у вас всегда должно быть $wp_query->post_count
равным 1, но если это будущая публикация/страница/cpt, то это приведет к 0 (потому что есть функции/действия, применяемые для проверки, будет ли это будущая публикация)
И $posts = $wpdb->get_results($wp_query->request);
то, как вы говорите не применять эти функции/действия, которые проверяют будущие сообщения/страницы/cpt