=== ILX Agenda Recherche === Contributors: info-lux Tags: agenda, recherche, événements, info-lux Requires at least: 6.0 Tested up to: 6.5 Stable tag: 1.7.0 License: GPLv2 or later Moteur de recherche pour l'agenda info-lux : filtres date, lieu, thème et prix. == Description == Ajoute un shortcode `[ilx_agenda_recherche]` qui affiche un formulaire de recherche sur les articles de la catégorie Agenda (ID 4154 par défaut). L'utilisateur peut filtrer par : * Date (à partir de…) * Lieu (sous-catégorie de l'Agenda) * Thème (sous-catégorie de l'Agenda) * Prix : Tous, Gratuit, fourchettes prédéfinies (0-10€, 10-25€, 25-50€, 50-100€, 100€+) ou fourchette personnalisée Les résultats s'affichent en vignettes cliquables (image, date, lieu, badge prix, extrait) qui mènent à l'article complet. == Shortcode == [ilx_agenda_recherche] Attributs optionnels : * `lieu_parent="4154"` ID de la cat parent dont les enfants peuplent le select Lieu * `theme_parent="4154"` ID de la cat parent dont les enfants peuplent le select Thème * `themes="brocante,theatre,exposition"` slugs alternatifs pour le select Thème * `per_page="24"` nombre de vignettes par page * `title="..."` titre du bloc * `subtitle="..."` sous-titre du bloc == Méta-données attendues sur les articles Agenda == * `_ilx_agenda_date_debut` (YYYY-MM-DD) — date de début de l'événement * `_ilx_agenda_prix_min` (entier) — prix d'entrée mini (0 = gratuit) * `_ilx_agenda_prix_max` (entier) — prix d'entrée maxi * `_ilx_agenda_gratuit` ('1') — drapeau gratuit explicite == Endpoint REST == GET /wp-json/ilx/v1/agenda-search Paramètres : date, date_fin, lieu, theme, gratuit, prix_min, prix_max, per_page, page == Changelog == = 1.7.0 = * Parsing robuste des titres : decode entités HTML, neutralise caractères invisibles (NBSP, ZWS, BOM), accepte plusieurs séparateurs (> › → ») * Endpoint /ilx/v1/agenda-version : vérifie la version active depuis l'extérieur * Endpoint /ilx/v1/agenda-debug-title/{id} : dump détaillé du parsing pour un post (utile pour identifier les titres mal formés) = 1.6.0 = * Filtre LIEU et THÈME basés sur le titre "Lieu > Thème > Sujet" (au lieu des catégories) * Lieux extraits du 1er segment du titre, comptés par fréquence * Thèmes extraits du 2e segment, comptés par fréquence * Recherche : LIKE SQL sur post_title (un seul filtre WHERE combiné) * Plus fiable que les catégories qui pouvaient être mélangées = 1.5.0 = * Filtre Lieu : exclusion des "lieux trop spécifiques" (centre culturel, salle, théâtre, palais, café, club, musée, église, parc, rue, hôtel, stade, gare, etc.) * Le badge Lieu sur les vignettes remonte automatiquement à la commune au lieu d'afficher le centre culturel * Heuristique : tout nom de cat avec plus de 4 mots est considéré comme trop spécifique = 1.4.0 = * Extraction des thèmes depuis le 2e segment du titre "Lieu > Thème > Sujet" * Compte d'occurrences affiché dans le select Thème (ex. "Festival (22)") * Filtre de recherche par thème : LIKE sur post_title (% > Thème > %) * Compat : si valeur numérique passée, fallback sur ID de catégorie = 1.3.0 = * Correction de la séparation Lieux / Thèmes : IDs hardcodés (4391 "Agenda > thèmes", 2823 "Thèmes") * Le filtre Thème liste désormais les enfants directs de 4391 * Le filtre Lieu exclut toutes les sous-cats de 4154 (cats mois), la branche 4391 et la branche 2823 = 1.2.0 = * Auto-détection de la sous-cat "Agenda > thèmes" (parent immédiat des thèmes) * Liste des LIEUX peuplée avec toutes les catégories réellement utilisées par les articles agenda (hors thèmes), triée par nom * Liste des THÈMES peuplée par les sous-cats de "Agenda > thèmes" * Correction du badge "Lieu" sur les vignettes : la commune (cat la plus profonde) au lieu de la première cat trouvée = 1.1.0 = * Ajout endpoint POST /ilx/v1/agenda-meta pour patcher prix_min, prix_max, gratuit * Permission : edit_posts (compatible Application Password) = 1.0.0 = * Première version : filtres date, lieu, thème, prix + Gratuit