1. Accueil
  2. Docs
  3. Doc technique
  4. Doc technique (v6)
  5. Hooks et filtres d’indexation et de listing (v6)

Hooks et filtres d’indexation et de listing (v6)

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;
} );

Aller plus loin

Étiquettes