Cette référence couvre les hooks et filtres invoqués lors de l’indexation des fiches dans la table wpdae_index et lors du rendu des listings côté front (blocs Listing, API REST).
Indexation
À chaque import ou mise à jour de fiche, WP-Apidae met à jour la table dénormalisée wpdae_index qui sert aux recherches facettées. Les hooks suivants permettent d’observer et d’intervenir dans ce processus.
wp-apidae/indexer/before_insert
Déclenchée avant l’insertion d’une fiche dans l’index.
do_action( 'wp-apidae/indexer/before_insert', $post_id, $lang );
wp-apidae/indexer/end_index_post
Déclenchée après l’indexation complète d’une fiche (toutes langues confondues).
do_action( 'wp-apidae/indexer/end_index_post', $post_id );
Listings et requêtes
Les blocs Listing et l’API REST utilisent WP_Query avec des arguments construits spécifiquement. Les filtres ci-dessous permettent de les modifier.
wp-apidae/listing/block/query_args
Filtre les arguments WP_Query utilisés par le bloc Listing.
$query_args = apply_filters( 'wp-apidae/listing/block/query_args', array(
// ...args WP_Query générés par le bloc...
) );
Cas d’usage : restreindre automatiquement un listing à une commune précise, ajouter une meta_query custom, modifier le posts_per_page selon le device, etc.
wp-apidae/listing/query_args
Filtre les arguments WP_Query utilisés par les listings côté API REST (endpoints généraux).
$args = apply_filters( 'wp-apidae/listing/query_args', array( /* args */ ) );
wp-apidae/listing/before_render
Action déclenchée juste avant le rendu d’un listing. Permet d’effectuer des préparations (cache warm-up, logging…).
do_action( 'wp-apidae/listing/before_render', $query, $lang );
Filtres facettés (Groupes de filtres)
Les groupes de filtres (cf. Filtrer mes sélections) exposent plusieurs hooks d’extension.
wp-apidae/filters-manager/get-filters-options/term
Filtre une option de filtre lors de sa génération à partir d’un terme de taxonomie.
$term = apply_filters( 'wp-apidae/filters-manager/get-filters-options/term', $term, $selection_id_slug );
wp-apidae/facet-filters/get-filters-set/bypass
Permet de contourner la logique standard de résolution du groupe de filtres pour une sélection donnée (utile pour les modules comme Global Map qui injectent leur propre filter set).
$bypass = apply_filters( 'wp-apidae/facet-filters/get-filters-set/bypass', false, $selection_id );
wp-apidae/admin/filter-set/add-option
Ajouter des options custom à l’écran d’édition d’un groupe de filtres dans l’admin.
$extra_options = apply_filters( 'wp-apidae/admin/filter-set/add-option', array(), $current_selection );
Exemple pratique : restreindre un listing par défaut
add_filter( 'wp-apidae/listing/block/query_args', function( $args ) {
// Toujours filtrer par une commune précise
$args['tax_query'] = isset( $args['tax_query'] ) ? $args['tax_query'] : array();
$args['tax_query'][] = array(
'taxonomy' => 'at_communes',
'field' => 'slug',
'terms' => 'greoux-les-bains',
);
return $args;
} );