' . wp_kses_post(EVQRA_Core::frontend_navigation()) . '';
?>
'evqra_event',
'posts_per_page' => $per_page,
'paged' => max(1, absint($paged)),
'meta_key' => '_evqra_event_date',
'orderby' => 'meta_value',
'order' => 'ASC',
];
if (!empty($filters['category'])) $args['tax_query'][] = ['taxonomy' => 'evqra_event_category', 'field' => 'slug', 'terms' => sanitize_text_field($filters['category'])];
if (!empty($filters['organizer'])) $args['meta_query'][] = ['key' => '_evqra_event_organizer_id', 'value' => absint($filters['organizer']), 'compare' => '=', 'type' => 'NUMERIC'];
if (!empty($filters['venue'])) $args['meta_query'][] = ['key' => '_evqra_event_venue_id', 'value' => absint($filters['venue']), 'compare' => '=', 'type' => 'NUMERIC'];
if (!empty($filters['date'])) $args['meta_query'][] = ['key' => '_evqra_event_date', 'value' => sanitize_text_field($filters['date']), 'compare' => '='];
if (!empty($filters['keyword'])) $args['s'] = sanitize_text_field($filters['keyword']);
$events = new WP_Query($args);
if (!$events->have_posts()) {
echo '⌁
' . esc_html__('Nothing matched your search', 'eventqora') . '
' . esc_html__('Try a different category, venue, organizer, or date.', 'eventqora') . '
';
return ['found' => false, 'has_more' => false];
}
$current_page = max(1, absint($paged));
$has_more = $events->max_num_pages > $current_page;
echo '';
while ($events->have_posts()) : $events->the_post();
$event_id = get_the_ID();
$date = get_post_meta($event_id, '_evqra_event_date', true);
$time = get_post_meta($event_id, '_evqra_event_time', true);
$end_time = get_post_meta($event_id, '_evqra_event_end_time', true);
$venue_id = absint(get_post_meta($event_id, '_evqra_event_venue_id', true));
$organizer_id = absint(get_post_meta($event_id, '_evqra_event_organizer_id', true));
$venue = $venue_id ? get_the_title($venue_id) : '';
$organizer = $organizer_id ? get_the_title($organizer_id) : '';
$categories = wp_get_post_terms($event_id, 'evqra_event_category');
$permalink = get_permalink();
$date_display = $date ? wp_date(get_option('date_format'), strtotime($date)) : '';
$month = $date ? wp_date('M', strtotime($date)) : '';
$day = $date ? wp_date('d', strtotime($date)) : '';
$excerpt = wp_trim_words(wp_strip_all_tags(get_the_excerpt() ?: get_the_content()), 18);
echo '
';
echo '';
if (evqra_event_has_valid_thumbnail($event_id)) echo get_the_post_thumbnail($event_id, 'medium_large', ['loading' => 'lazy']); else echo '✦';
if (get_post_meta($event_id, '_evqra_event_featured', true)) echo '' . esc_html__('Featured', 'eventqora') . '';
echo '↗';
echo '';
if (!empty($categories) && !is_wp_error($categories)) {
echo '
';
foreach (array_slice($categories, 0, 2) as $term) {
$palette_class = evqra_get_category_palette_class($term->term_id);
echo '
' . esc_html($term->name) . '';
}
echo '
';
}
echo '
' . esc_html($month) . '' . esc_html($day) . '
';
echo '
';
if ($excerpt) echo '
' . esc_html($excerpt) . '
';
echo '
';
if ($date_display) echo '◷' . esc_html($date_display . ($time ? ' · ' . $time : '') . ($end_time ? ' – ' . $end_time : '')) . '';
if ($venue) echo '⌖' . esc_html($venue) . '';
if ($organizer) echo '◎' . esc_html($organizer) . '';
echo '
';
echo '
';
endwhile;
echo '
';
wp_reset_postdata();
return ['found' => true, 'has_more' => $has_more];
}