diff --git a/app/models/TraductionLangue_Model.php b/app/models/TraductionLangue_Model.php index 1e160df..b039631 100644 --- a/app/models/TraductionLangue_Model.php +++ b/app/models/TraductionLangue_Model.php @@ -118,16 +118,6 @@ class CRVI_TraductionLangue_Model extends Main_Model { ]; // Appliquer les filtres - if (!empty($filters['langue'])) { - $args['tax_query'] = [ - [ - 'taxonomy' => 'langue', - 'field' => 'term_id', - 'terms' => (int) $filters['langue'], - ], - ]; - } - if (!empty($filters['jour'])) { $args['meta_query'][] = [ 'key' => 'jour', @@ -147,8 +137,24 @@ class CRVI_TraductionLangue_Model extends Main_Model { $posts = \get_posts($args); $capacites = []; - foreach ($posts as $post) { - $capacites[] = self::load($post->ID); + // Filtrer par langue si demandé (le champ langue est un ACF taxonomy multi-select stocké en meta) + if (!empty($filters['langue'])) { + $langue_id_filter = (int) $filters['langue']; + foreach ($posts as $post) { + $capacite = self::load($post->ID); + if ($capacite && !empty($capacite->langue)) { + // Le champ langue est un tableau d'IDs + $langue_ids = is_array($capacite->langue) ? $capacite->langue : [$capacite->langue]; + if (in_array($langue_id_filter, $langue_ids)) { + $capacites[] = $capacite; + } + } + } + } else { + // Pas de filtre par langue, charger toutes les capacités + foreach ($posts as $post) { + $capacites[] = self::load($post->ID); + } } // Mettre en cache si activé et sans filtres