我正在寻找一种方法,当for each循环中的WP\\u查询没有结果时,可以根据自定义分类法过滤for each循环的结果。
更具体地说,我有一个带有自定义分类法的事件帖子类型。在页面上,我希望显示所有分类法,但仅当该分类法包含事件数据将来所在的事件时。事件日期是一个自定义字段(ACF)。
以下代码显示了所有分类法,即使WP\\u查询没有结果/将来该分类法现在有事件时也是如此。
<?php // Get all the categories
$categories = get_terms( \'soort-event\');
foreach ( $categories as $category ):
// Chech if event start date is in the future
$meta_query = array(
array(
\'key\' => \'datum_event\',
\'value\' => date(\'Ymd\'),
\'type\' => \'DATE\',
\'compare\' => \'>\',
)
);
// Get all events
$events = new WP_Query(
array(
\'post_type\' => \'events\',
\'orderby\' => \'meta_value_num\',
\'order\' => \'ASC\',
\'posts_per_page\' => \'3\',
\'tax_query\' => array(
array(
\'taxonomy\' => \'soort-event\',
\'terms\' => $category,
\'field\' => \'term_id\'
)
),
\'meta_query\' => $meta_query
)
);
if($events -> have_posts()):?>
?>
<section class="events">
<h2><?php // Show the event taxonomy name
echo $category->name;?></h2>
<div class="row events">
<?php // Show the event details
while ($events->have_posts()) : $events->the_post(); ?>
<div class="event-meta">
<?php the_title();?>
</div>
<?php // End event loop
endwhile;?>
</section>
<?php
// end Events loop
endif;
// end for each taxonomy loop
endforeach;
wp_reset_postdata();
?>
是否有方法过滤结果并隐藏没有事件的“空”分类法,其中事件日期在将来?
更新:更新代码并添加if语句以检查帖子。