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