// Fonction pour formater l'heure function gram_event_format_time($time) { if (empty($time)) return ''; if (preg_match('/^\d{2}:\d{2}$/', $time)) { return $time; } $timestamp = strtotime($time); return $timestamp ? date_i18n('H:i', $timestamp) : $time; } // Fonction pour obtenir les détails de dates avec précision function gram_event_get_date_details($start_date, $end_date) { if (!$start_date) return ''; $start_formatted = gram_event_format_date($start_date); if (!$end_date || $end_date === $start_date) { return "Le " . $start_formatted; } $end_formatted = gram_event_format_date($end_date); $start_timestamp = strtotime($start_date); $end_timestamp = strtotime($end_date); $start_month = date('n', $start_timestamp); $start_year = date('Y', $start_timestamp); $end_month = date('n', $end_timestamp); $end_year = date('Y', $end_timestamp); if ($start_month === $end_month && $start_year === $end_year) { $start_day = date('j', $start_timestamp); $end_full = date_i18n('j F Y', $end_timestamp); return "Du " . $start_day . " au " . $end_full; } else { return "Du " . $start_formatted . " au " . $end_formatted; } } // === FONCTION POUR L'ARCHIVE DES ÉVÉNEMENTS === function gram_event_get_enhanced_archive_meta() { $post_id = get_the_ID(); // Récupération des métadonnées $start_date = get_post_meta($post_id, 'event_start_date', true); $end_date = get_post_meta($post_id, 'event_end_date', true); $vernissage_date = get_post_meta($post_id, 'vernissage_date', true); $vernissage_time = get_post_meta($post_id, 'vernissage_time', true); $price = get_post_meta($post_id, 'event_price', true); // Récupération des taxonomies $locations = get_the_terms($post_id, 'location'); $organizers = get_the_terms($post_id, 'organizer'); $html = '
'; return $html; } // === FONCTION POUR LES PAGES INDIVIDUELLES (CONSERVÉE DE L'ORIGINAL) === function gram_event_get_sidebar_content() { $post_id = get_the_ID(); // Récupération des métadonnées $start_date = get_post_meta($post_id, 'event_start_date', true); $end_date = get_post_meta($post_id, 'event_end_date', true); $vernissage_date = get_post_meta($post_id, 'vernissage_date', true); $vernissage_time = get_post_meta($post_id, 'vernissage_time', true); $finissage_date = get_post_meta($post_id, 'finissage_date', true); $finissage_time = get_post_meta($post_id, 'finissage_time', true); $price = get_post_meta($post_id, 'event_price', true); // Récupération des taxonomies $locations = get_the_terms($post_id, 'location'); $organizers = get_the_terms($post_id, 'organizer'); $sidebar = ' '; return $sidebar; } // === FONCTION PRINCIPALE DE ROUTAGE === function gram_event_display_details($content) { // Pour les archives d'événements if (is_post_type_archive('event') || (get_post_type() === 'event' && !is_singular())) { return $content . gram_event_get_enhanced_archive_meta(); } // Pour les pages individuelles d'événements if (is_singular('event')) { $sidebar_content = gram_event_get_sidebar_content(); $output = '