Se protéger de la chaleur estivale : les bons gestes à adopter.
/* ========================================================= * A. Champ miroir triable : date-evenement (dmY) → date_evenement_sortable (Ymd) * =======================================================*/ // Format de la valeur BRUTE stockée. dmY = ex. "10092026". // ⚠️ S'il y a des séparateurs (10/09/2026 → 'd/m/Y'), adapte cette constante. define('AGENDA_DATE_FORMAT_IN', 'dmY'); // 1) Synchronisation à chaque enregistrement d'un événement add_action('save_post_agenda', function ($post_id) { $raw = get_post_meta($post_id, 'date-evenement', true); if (!$raw) return; $d = DateTime::createFromFormat(AGENDA_DATE_FORMAT_IN, $raw); if ($d) { update_post_meta($post_id, 'date_evenement_sortable', $d->format('Ymd')); } }, 20); // 2) Remplissage des événements existants — À LANCER UNE FOIS puis supprimer ce bloc. // Connecté en admin, visite : https://tonsite.fr/?run_agenda_backfill=1 add_action('admin_init', function () { if (!current_user_can('manage_options') || !isset($_GET['run_agenda_backfill'])) return; $ids = get_posts(['post_type' => 'agenda', 'posts_per_page' => -1, 'fields' => 'ids']); $ok = 0; foreach ($ids as $id) { $raw = get_post_meta($id, 'date-evenement', true); $d = $raw ? DateTime::createFromFormat(AGENDA_DATE_FORMAT_IN, $raw) : false; if ($d) { update_post_meta($id, 'date_evenement_sortable', $d->format('Ymd')); $ok++; } } wp_die("Backfill terminé : {$ok} / " . count($ids) . " événements traités."); }); /* ========================================================= * B. Filtre de la Loop Grid Elementor (Query ID = agenda_a_venir) * =======================================================*/ add_action('elementor/query/agenda_a_venir', function (\WP_Query $query) { $today = current_time('Ymd'); // heure locale WordPress $query->set('meta_key', 'date_evenement_sortable'); $query->set('orderby', 'meta_value_num'); $query->set('order', 'ASC'); $meta_query = (array) $query->get('meta_query'); // on préserve un éventuel filtre existant $meta_query[] = array( 'key' => 'date_evenement_sortable', 'value' => $today, 'compare' => '>=', // '>' pour masquer aussi l'événement du jour même 'type' => 'NUMERIC', ); $query->set('meta_query', $meta_query); });