@Mixa

Как разрешить отображение будущих постов без показа приватных, черновиков и пр.?

Решил отображать "будущие" посты на сайте. Чтобы бы не отадавало 404-ю страницу нашел вот такое вот решение:

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


Все отлично, но теперь стают также доступны приватные записи, черновики и т.д.

Пытался пофиксить, дописав в условия

...&& get_post_status($ID)=='future'

но так почему-то не работает.

Подскажите, профи, как быть? Не хочется халтурить и оставлять все как есть.
  • Вопрос задан
  • 208 просмотров
Пригласить эксперта
Ответы на вопрос 1
Не знаю зачем Вы пошли через $wp_query но если так надо, то с минимальными изменениями, должно работать вот так
function show_future_posts($posts) {
	global $wp_query, $wpdb;
	$future_posts = array();
	
	if(is_single() && $wp_query->post_count == 0) {
		$posts = $wpdb->get_results($wp_query->request);
		foreach($posts as $post) {
			if(get_post_status ( $post->ID ) == 'future') {
				$future_posts[] = $post;
			}
		}
	}

	return $future_posts;
}
add_filter('the_posts', 'show_future_posts');
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы