Как скрыть подрубрику, посты которой не соответствуют условиям.
Нужно сделать вывод подкатегорий с записями, записи в которых имеют условие в произвольном поле, в моем случае дополнительную дату.
наже приведен код, он работает, но так же он выводит категории где посты не соответствуют условиям и они выводятсяпустыми, их надо скрыть.
выводиться:
категория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> ';
}
}