WordPress как на ладони
Дешевый WordPress пакет для разработки Хостинг, VPS/VDS и отдельные сервера только на SSD дисках. 7 дней бесплатного тестирования.

Как скрыть подрубрику, посты которой не соответствуют условиям.

Нужно сделать вывод подкатегорий с записями, записи в которых имеют условие в произвольном поле, в моем случае дополнительную дату.
наже приведен код, он работает, но так же он выводит категории где посты не соответствуют условиям и они выводятсяпустыми, их надо скрыть.
выводиться:
категория1
запись1 запись2 запись3
подкатегория1
запись6 запись4 запись5
категория3
подкатегория4
категория2
запись11 запись7 запись8
подкатегория3
запись9 запись10 запись1

а нужно такого вида:
категория1
запись1 запись2 запись3
подкатегория1
запись6 запись4 запись5
категория2
запись11 запись7 запись8
подкатегория3
запись9 запись10 запись12

код которым вывожу рубрики с постами:

$time_ws_x = current_time('timestamp');
				$time_ws_x1 = $time_ws_x;
				$time_ws2x  = date('Y-m-d H:i:s', $time_ws_x1);
				$time_ws_d1 = $time_ws_x + 86400;     $time_ds1 = date('Y-m-d H:i:s', $time_ws_d1);
				$time_ws_d2 = $time_ws_x + (86400*2); $time_ds2 = date('Y-m-d H:i:s', $time_ws_d2);

	$sub_cats = get_categories( array(    // задаем условие для вывода рубрик
				'type'         => 'post',
				'child_of'     => 28,
				'orderby'      => 'ID',
				'order'        => 'ASC',
				'hide_empty'   => 1,
				'taxonomy'     => 'category',
			) );
			if( $sub_cats ){
				foreach( $sub_cats as $cat ){
			  echo '<div class="sport-divider">
					<div class="type-h3"><a href="'.get_category_link($cat->cat_ID).'" title="'.$cat->cat_name.'">'.$cat->cat_name.'</a> </div>
			   ';
					// вывод постов

					 if ($_GET && !empty($_GET))
				  {  // если было передано что-то из формы
					go_filter();

					// запускаем функцию фильтрации
				if ( have_posts() )
					{
						while ( have_posts() )
					  {
					  the_post();
						 echo' <a class="event" href="'. get_permalink() .'">';
						get_template_part( 'template-parts/post/content-event', get_post_format() );
							echo'</a>';
					  }

					 } wp_reset_postdata();

					} else
					{ 
					// задаем условия записям для вывода
					$parent_idus = $cat->cat_ID;
					$args['meta_query'] = array( // пешем условия в meta_query
					'key' => 'event_unix', // название произвольного поля
					'value' => $time_ws_x, // текуще время в unix
					'type' => 'numeric', // тип поля - число
					'compare' => '>' // тип сравнения
					);
					query_posts( array('category__in' => $parent_idus,'meta_query'   => $args,));
						if ( have_posts() )
					{
						while ( have_posts() )
					  {
					  the_post();
						echo' <a class="event" href="'. get_permalink() .'">';
						get_template_part( 'template-parts/post/content-event', get_post_format() );
							echo'</a>';
					   }
					 }
					wp_reset_postdata(); // сбрасываем глобальную переменную пост
				 } echo' </div> ';
				}
			}
0
10 месяцев назад

Нет ответов на этот вопрос.

    На вопросы могут отвечать только зарегистрированные пользователи. Вход . Регистрация